This commit is contained in:
64
e2e/website/routes.spec.ts
Normal file
64
e2e/website/routes.spec.ts
Normal file
@ -0,0 +1,64 @@
|
||||
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();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user