peer-at-code-web/tests/index.test.ts
2023-09-18 13:08:29 +02:00

51 lines
1.4 KiB
TypeScript

import { expect, test } from '@playwright/test';
test('index page redirects to login page', async ({ page }) => {
await page.goto('/');
await page.waitForURL('/sign-in');
await expect(page.url()).toContain('/sign-in');
});
test('sign-in page has a sign-up link that redirects to the sign-up page', async ({ page }) => {
await page.goto('/sign-in');
const link = await page.$('a[href*="/sign-up"]');
await link?.click();
await page.waitForURL('/sign-up');
await expect(page.url()).toContain('/sign-up');
});
test('sign-up page has a sign-in link that redirects to the sign-in page', async ({ page }) => {
await page.goto('/sign-up');
const link = await page.$('a[href*="/sign-in"]');
await link?.click();
await page.waitForURL('/sign-in');
await expect(page.url()).toContain('/sign-in');
});
test('dashboard page redirects to sign-in page if user is not logged in', async ({ page }) => {
await page.goto('/dashboard');
await expect(page.url()).toContain('/sign-in');
});
test('login form accepts valid credentials', async ({ page }) => {
await page.context().clearCookies();
await page.goto('/sign-in');
await page.fill('input[name="pseudo"]', 'glazk0');
await page.fill('input[name="passwd"]', 'Cookies Are #Miam42');
await Promise.all([page.getByRole('button').click(), page.waitForURL('/dashboard')]);
await expect(page.url()).toContain('/dashboard');
});