// eslint-disable-next-line no-unused-vars const { Page } = require("puppeteer"); const { sleep } = require("../src/util"); /** * Set back the correct data type for page object * @type {Page} */ page; beforeAll(() => { if (process.env.JUST_FOR_TEST) { console.log(process.env.JUST_FOR_TEST); if (process.env.JUST_FOR_TEST === "JUST_FOR_TEST_HELLO") { console.log("secret ok"); } } }); afterAll(() => { }); const baseURL = "http://127.0.0.1:3002"; describe("Init", () => { const title = "Uptime Kuma"; beforeAll(async () => { await page.goto(baseURL); }); it(`should be titled "${title}"`, async () => { await expect(page.title()).resolves.toMatch(title); }); it("Setup", async () => { // Create an Admin await page.waitForSelector("#floatingInput"); await page.waitForSelector("#repeat"); await page.click("#floatingInput"); await page.type("#floatingInput", "admin"); await page.type("#floatingPassword", "admin123"); await page.type("#repeat", "admin123"); await page.click(".btn-primary[type=submit]"); await sleep(3000); // Go to /setup again await page.goto(baseURL + "/setup"); await sleep(3000); const pathname = await page.evaluate(() => location.pathname); expect(pathname).toEqual("/dashboard"); // Go to / await page.goto(baseURL); expect(pathname).toEqual("/dashboard"); }); describe("Settings", () => { beforeAll(async () => { await page.goto(baseURL + "/settings"); }); it("Change Language", async () => { await page.select("#language", "zh-HK"); let languageTitle = await page.evaluate(() => document.querySelector("[for=language]").innerText); expect(languageTitle).toMatch("語言"); await page.select("#language", "en"); languageTitle = await page.evaluate(() => document.querySelector("[for=language]").innerText); expect(languageTitle).toMatch("Language"); }); it("Change Theme", async () => { // Light await page.click(".btn[for=btncheck1]"); await page.waitForSelector("div.light", { timeout: 2000 }); await page.click(".btn[for=btncheck2]"); await page.waitForSelector("div.dark", { timeout: 2000 }); }); }); describe("Status Page", () => { const title = "Uptime Kuma"; beforeAll(async () => { await page.goto(baseURL + "/status"); }); it(`should be titled "${title}"`, async () => { await expect(page.title()).resolves.toMatch(title); }); }); });