Some checks failed
Docker image builds / build (push) Waiting to run
Asset Build Verification / asset_verification (push) Has been cancelled
Docs deploy / build (push) Has been cancelled
Go Mod Tidy Check / go_mod_tidy_check (push) Has been cancelled
Go / go_tests (push) Has been cancelled
Package builds (unstable) / package_builds (push) Has been cancelled
Smoke tests / smoke-test (default-config-macro) (push) Has been cancelled
Smoke tests / smoke-test (docker-registry) (push) Has been cancelled
Smoke tests / smoke-test (double_slash) (push) Has been cancelled
Smoke tests / smoke-test (forced-language) (push) Has been cancelled
Smoke tests / smoke-test (git-clone) (push) Has been cancelled
Smoke tests / smoke-test (git-push) (push) Has been cancelled
Smoke tests / smoke-test (healthcheck) (push) Has been cancelled
Smoke tests / smoke-test (i18n) (push) Has been cancelled
Smoke tests / smoke-test (log-file) (push) Has been cancelled
Smoke tests / smoke-test (nginx) (push) Has been cancelled
Smoke tests / smoke-test (palemoon/amd64) (push) Has been cancelled
Smoke tests / smoke-test (robots_txt) (push) Has been cancelled
Check Spelling / Check Spelling (push) Has been cancelled
SSH CI / ssh (aarch64-16k) (push) Has been cancelled
SSH CI / ssh (aarch64-4k) (push) Has been cancelled
SSH CI / ssh (ppc64le) (push) Has been cancelled
SSH CI / ssh (riscv64) (push) Has been cancelled
zizmor / zizmor latest via PyPI (push) Has been cancelled
64 lines
1.5 KiB
JavaScript
64 lines
1.5 KiB
JavaScript
async function fetchLanguages() {
|
|
return fetch(
|
|
"http://localhost:8923/.within.website/x/cmd/nuke/static/locales/manifest.json",
|
|
)
|
|
.then((resp) => {
|
|
if (resp.status !== 200) {
|
|
throw new Error(`wanted status 200, got status: ${resp.status}`);
|
|
}
|
|
return resp;
|
|
})
|
|
.then((resp) => resp.json());
|
|
}
|
|
|
|
async function getChallengePage(lang) {
|
|
return fetch("http://localhost:8923/reqmeta", {
|
|
headers: {
|
|
"Accept-Language": lang,
|
|
"User-Agent": "CHALLENGE",
|
|
},
|
|
})
|
|
.then((resp) => {
|
|
if (resp.status !== 200) {
|
|
throw new Error(`wanted status 200, got status: ${resp.status}`);
|
|
}
|
|
return resp;
|
|
})
|
|
.then((resp) => resp.text());
|
|
}
|
|
|
|
(async () => {
|
|
const languages = await fetchLanguages();
|
|
console.log(languages);
|
|
|
|
const { supportedLanguages } = languages;
|
|
|
|
if (supportedLanguages.length === 0) {
|
|
throw new Error(`no languages defined`);
|
|
}
|
|
|
|
const resultSheet = {};
|
|
let failed = false;
|
|
|
|
for (const lang of supportedLanguages) {
|
|
console.log(`getting for ${lang}`);
|
|
const page = await getChallengePage(lang);
|
|
|
|
resultSheet[lang] = page.includes(`<html lang="${lang}">`);
|
|
}
|
|
|
|
for (const [lang, result] of Object.entries(resultSheet)) {
|
|
if (!result) {
|
|
failed = true;
|
|
console.log(`${lang} did not show up in challenge page`);
|
|
}
|
|
}
|
|
|
|
console.log(resultSheet);
|
|
|
|
if (failed) {
|
|
throw new Error("i18n smoke test failed");
|
|
}
|
|
|
|
process.exit(0);
|
|
})();
|