65 lines
2.3 KiB
TypeScript
65 lines
2.3 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
||
import { loginAs, logout } from './helpers';
|
||
|
||
test.describe('Website – routes (admin)', () => {
|
||
test.beforeEach(async ({ page }) => {
|
||
await loginAs(page, 'testadmin');
|
||
});
|
||
|
||
test('dashboard lists questionnaires', async ({ page }) => {
|
||
await expect(page.locator('h1')).toHaveText('Questionnaires');
|
||
await expect(page.locator('.q-card, .empty-state')).toBeVisible();
|
||
});
|
||
|
||
test('export page', async ({ page }) => {
|
||
await page.goto('/website/#/export');
|
||
await expect(page.locator('h1')).toContainText('Export');
|
||
});
|
||
|
||
test('users page for admin', async ({ page }) => {
|
||
await page.goto('/website/#/users');
|
||
await expect(page.locator('h1')).toContainText('Users');
|
||
});
|
||
|
||
test('clients page', async ({ page }) => {
|
||
await page.goto('/website/#/clients');
|
||
await expect(page.locator('h1')).toContainText('Clients');
|
||
});
|
||
|
||
test('assignments page', async ({ page }) => {
|
||
await page.goto('/website/#/assignments');
|
||
await expect(page.locator('h1')).toContainText('Assign');
|
||
});
|
||
|
||
test('editor for seeded questionnaire', async ({ page }) => {
|
||
await page.goto('/website/#/questionnaire/questionnaire_test_demo');
|
||
await expect(page.locator('#editorTitle')).not.toHaveText('Loading...');
|
||
await expect(page.locator('#editorContent')).toContainText('Questions');
|
||
});
|
||
|
||
test('results page', async ({ page }) => {
|
||
await page.goto('/website/#/questionnaire/questionnaire_test_demo/results');
|
||
await expect(page.locator('h1')).toContainText('Results');
|
||
});
|
||
|
||
test('logout clears session', async ({ page }) => {
|
||
await logout(page);
|
||
await page.goto('/website/#/');
|
||
await expect(page.locator('#loginForm')).toBeVisible();
|
||
});
|
||
});
|
||
|
||
test.describe('Website – role nav', () => {
|
||
test('coach cannot see admin nav items', async ({ page }) => {
|
||
await loginAs(page, 'testcoach1');
|
||
const usersNav = page.locator('[data-nav-roles] a[href="#/users"]');
|
||
await expect(usersNav).toBeHidden();
|
||
});
|
||
|
||
test('supervisor sees users nav', async ({ page }) => {
|
||
await loginAs(page, 'testsuper1');
|
||
const usersNav = page.locator('[data-nav-roles] a[href="#/users"]');
|
||
await expect(usersNav).toBeVisible();
|
||
});
|
||
});
|