42 lines
1.7 KiB
TypeScript
42 lines
1.7 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
import { PublicFormHelper } from '../../helpers/helpers';
|
|
|
|
test.describe.configure({ mode: 'serial' });
|
|
|
|
test.describe('Public Survey Form', () => {
|
|
test('invalid token page loads', async ({ page }) => {
|
|
const response = await page.goto('/surveys/invalid/');
|
|
expect(response?.status()).toBe(200);
|
|
await expect(page.locator('body')).toContainText(/invalid|token/i);
|
|
});
|
|
|
|
test('survey with expired or invalid token shows error', async ({ page }) => {
|
|
const response = await page.goto('/surveys/s/invalid-token-xyz/');
|
|
expect(response?.status()).toBeLessThan(500);
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
const hasContent = await page.locator('body').textContent().then(t => t!.length > 0);
|
|
expect(hasContent).toBeTruthy();
|
|
});
|
|
});
|
|
|
|
test.describe('Survey Internal Pages (Auth Required)', () => {
|
|
test('unauthenticated access to survey templates redirects to login', async ({ page }) => {
|
|
await page.goto('/surveys/templates/');
|
|
await page.waitForURL(/\/accounts\/login\/?/, { timeout: 10000 });
|
|
await expect(page.locator('#email')).toBeVisible();
|
|
});
|
|
|
|
test('unauthenticated access to survey instances redirects to login', async ({ page }) => {
|
|
await page.goto('/surveys/instances/');
|
|
await page.waitForURL(/\/accounts\/login\/?/, { timeout: 10000 });
|
|
await expect(page.locator('#email')).toBeVisible();
|
|
});
|
|
|
|
test('unauthenticated access to survey analytics redirects to login', async ({ page }) => {
|
|
await page.goto('/surveys/analytics/');
|
|
await page.waitForURL(/\/accounts\/login\/?/, { timeout: 10000 });
|
|
await expect(page.locator('#email')).toBeVisible();
|
|
});
|
|
});
|