const assert = require("node:assert/strict"); const path = require("node:path"); const { Key, absoluteUrl, allTexts, clickByTitle, clickLabel, clickSelector, clickText, elementText, fillInput, getAttribute, getClassName, getDomWrapErrors, getValue, hasSelector, isChecked, postJson, registerAndLoginApi, request, runSmokeTests, seedAuthenticatedBrowser, selectorCount, uniqueName, waitFor, waitForAbsent, waitForSelector, waitForText, waitForUrl, withDriver } = require("./lib/selenium-smoke"); const domWrapAddonPath = path.join(__dirname, "dom-wrap-addon"); async function openAuthenticatedPlay(driver, sessionCookie) { await seedAuthenticatedBrowser(driver, sessionCookie); await driver.get(absoluteUrl("/play")); await waitForText(driver, "Campaign Log"); } const tests = [ { name: "home page loads auth entry points", run: async () => withDriver({}, async (driver) => { await driver.get(absoluteUrl("/")); await waitForUrl(driver, "/login"); await waitForText(driver, "RpgRoller"); assert.deepEqual(await allTexts(driver, "h2"), ["Register", "Login"]); assert.equal(await hasSelector(driver, "#register-username"), true); assert.equal(await hasSelector(driver, "#login-password"), true); }) }, { name: "root document redirects anonymous users to login", run: async () => { const response = await request("/", { redirect: "manual" }); assert.equal(response.status, 302); assert.equal(response.headers.get("location"), "/login"); } }, { name: "login document renders static auth markup without bootstrapping blazor", run: async () => { const response = await request("/login"); assert.equal(response.status, 200); const html = await response.text(); assert.ok(!html.includes("Connecting...")); assert.ok(html.includes("Register or log in to join a campaign session.")); assert.ok(!html.includes("_framework/blazor.web.js")); assert.ok(!html.includes("