33 lines
1.2 KiB
TypeScript
33 lines
1.2 KiB
TypeScript
import { expect, test } from '@playwright/test';
|
|
import { mockLoggedOutApi, mockSelfHostingDashboardApi } from './fixtures/api';
|
|
|
|
test('signs in with mocked self-hosting admin credentials', async ({ page }) => {
|
|
await mockSelfHostingDashboardApi(page);
|
|
|
|
await page.goto('/dashboard/login');
|
|
await expect(page.getByRole('heading', { name: 'Insforge Admin' })).toBeVisible();
|
|
|
|
await page.locator('input[name="username"]').fill('admin');
|
|
await page.locator('input[type="password"]').fill('test-admin-password-for-ci');
|
|
const loginResponse = page.waitForResponse(
|
|
(response) =>
|
|
response.url().includes('/api/auth/admin/sessions') && response.request().method() === 'POST'
|
|
);
|
|
await page.getByRole('button', { name: 'Sign in' }).click();
|
|
expect((await loginResponse).status()).toBe(200);
|
|
|
|
await expect(page).toHaveURL(/\/dashboard$/);
|
|
});
|
|
|
|
test('redirects unauthenticated dashboard visitors to the self-hosting login page', async ({
|
|
page,
|
|
}) => {
|
|
await mockLoggedOutApi(page);
|
|
|
|
await page.goto('/dashboard');
|
|
|
|
await expect(page).toHaveURL(/\/dashboard\/login$/);
|
|
await expect(page.getByRole('heading', { name: 'Insforge Admin' })).toBeVisible();
|
|
await expect(page.getByRole('button', { name: 'Sign in' })).toBeVisible();
|
|
});
|