Fix tests

This commit is contained in:
aronmal 2023-08-19 23:17:14 +02:00
parent 2479dd518d
commit 4c2c578311
Signed by: aronmal
GPG key ID: 816B7707426FC612
5 changed files with 20 additions and 9 deletions

View file

@ -10,4 +10,5 @@ module.exports = {
"plugin:@typescript-eslint/recommended", "plugin:@typescript-eslint/recommended",
"prettier", "prettier",
], ],
ignorePatterns: ["dist/**"],
} }

View file

@ -1,6 +1,6 @@
import { expect, test, type BrowserContext, type Page } from "@playwright/test" import { expect, test, type BrowserContext, type Page } from "@playwright/test"
const callbackUrl = process.env.AUTH_URL + "/" const callbackUrl = process.env.AUTH_URL as string
let context: BrowserContext let context: BrowserContext
let page: Page let page: Page
@ -16,7 +16,7 @@ test.describe.serial("Check Azure AD auth", () => {
}) })
test("Login process...", async () => { test("Login process...", async () => {
await page.goto(callbackUrl + "signin") await page.goto(callbackUrl + "/signin")
await page.waitForLoadState("domcontentloaded") await page.waitForLoadState("domcontentloaded")
@ -45,7 +45,7 @@ test.describe.serial("Check Azure AD auth", () => {
}) })
test("Is logged in", async () => { test("Is logged in", async () => {
await page.goto(callbackUrl + "signin") await page.goto(callbackUrl + "/api/auth/check")
await page.waitForSelector("#start") await page.waitForSelector("#start")
await page.evaluate(() => document.fonts.ready) await page.evaluate(() => document.fonts.ready)
@ -55,7 +55,7 @@ test.describe.serial("Check Azure AD auth", () => {
}) })
test("Is logged out", async () => { test("Is logged out", async () => {
await page.goto(callbackUrl + "signout") await page.goto(callbackUrl + "/signout")
await page.waitForLoadState("domcontentloaded") await page.waitForLoadState("domcontentloaded")

View file

@ -9,7 +9,7 @@ import { and, desc, eq } from "drizzle-orm"
import db from "~/drizzle" import db from "~/drizzle"
import { verificationTokens } from "~/drizzle/schemas/Tables" import { verificationTokens } from "~/drizzle/schemas/Tables"
const callbackUrl = process.env.NEXTAUTH_URL + "/" const callbackUrl = process.env.AUTH_URL as string
const player1Email = (browser: Browser) => const player1Email = (browser: Browser) =>
browser.browserType().name() + "-player-1@example.com" browser.browserType().name() + "-player-1@example.com"
@ -27,14 +27,14 @@ test.describe.serial("Check Email auth", () => {
}) })
test("Email login process...", async ({ browser }) => { test("Email login process...", async ({ browser }) => {
await page.goto(callbackUrl + "signin") await page.goto(callbackUrl + "/signin")
await page.waitForSelector("input#email") await page.waitForSelector("input#email")
await page.fill("input#email", player1Email(browser)) await page.fill("input#email", player1Email(browser))
await page.click("button#email-submit") await page.click("button#email-submit")
await page.waitForURL( await page.waitForURL(
callbackUrl + "api/auth/verify-request?provider=email&type=email", callbackUrl + "/api/auth/verify-request?provider=email&type=email",
) )
await page.waitForLoadState("domcontentloaded") await page.waitForLoadState("domcontentloaded")
@ -68,7 +68,7 @@ test.describe.serial("Check Email auth", () => {
token, token,
email: player1Email(browser), email: player1Email(browser),
}) })
const url = callbackUrl + "api/auth/callback/email?" + params const url = callbackUrl + "/api/auth/callback/email?" + params
await page.goto(url) await page.goto(url)

View file

@ -71,7 +71,7 @@ export default defineConfig({
/* Run your local dev server before starting the tests */ /* Run your local dev server before starting the tests */
webServer: { webServer: {
command: "pnpm run start", command: "pnpm start",
url: process.env.AUTH_URL, url: process.env.AUTH_URL,
reuseExistingServer: !process.env.CI, reuseExistingServer: !process.env.CI,
}, },

View file

@ -0,0 +1,10 @@
import { getSession } from "@auth/solid-start"
import status from "http-status"
import { APIEvent, redirect } from "solid-start"
import { authOptions } from "~/server/auth"
export async function GET({ request }: APIEvent) {
const session = await getSession(request, authOptions)
if (session) return redirect("/")
else return new Response(null, { status: status["UNAUTHORIZED"] })
}