| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- async function fetchLanguages() {
- return fetch(
- "http://localhost:8923/.within.website/x/cmd/anubis/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);
- })();
|