HH/e2e/tests/public-forms/surveys.spec.ts
2026-04-08 17:13:35 +03:00

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();
});
});