rallly/apps/web/tests/next-auth-migration.spec.ts
2025-02-12 16:20:31 +07:00

56 lines
1.3 KiB
TypeScript

import { expect, test } from "@playwright/test";
import { prisma } from "@rallly/database";
import { encode } from "./helpers/next-auth-v4";
const legacyGuestId = "user-1234";
test.describe.serial(() => {
test.beforeAll(async () => {
await prisma.poll.create({
data: {
id: "legacy-guest-poll",
title: "Test Poll",
adminUrlId: "admin-url-id",
participantUrlId: "participant-url-id",
guestId: legacyGuestId,
},
});
});
test.afterAll(async () => {
await prisma.poll.delete({
where: {
id: "legacy-guest-poll",
},
});
});
test("should see poll on login page", async ({ page }) => {
const context = page.context();
const legacyToken = await encode({
token: {
sub: legacyGuestId,
},
secret: process.env.SECRET_PASSWORD,
});
// set cookie to simulate legacy guest
await context.addCookies([
{
name: "next-auth.session-token",
value: legacyToken,
httpOnly: true,
expires: Date.now() / 1000 + 60 * 60 * 24 * 7,
secure: false,
sameSite: "Lax",
domain: "localhost",
path: "/",
},
]);
await page.goto("/");
// Check if the poll title exists in the page content
await expect(page.getByText("Test Poll")).toBeVisible();
});
});