46 lines
2.1 KiB
JavaScript
46 lines
2.1 KiB
JavaScript
const { test, expect } = require('@playwright/test');
|
|
|
|
test.describe('IronKanban smoke', () => {
|
|
test('loads the demo board and core UI sections', async ({ page }) => {
|
|
await page.goto('/?project=demo-project');
|
|
|
|
await expect(page.getByRole('heading', { name: 'IronKanban' })).toBeVisible();
|
|
await expect(page.getByRole('heading', { name: 'Demo Project' })).toBeVisible();
|
|
await expect(page.locator('#board-columns .column')).toHaveCount(4);
|
|
await expect(page.locator('#trash-panel')).toBeVisible();
|
|
await expect(page.locator('#notes-panel')).toBeVisible();
|
|
});
|
|
|
|
test('toggles notes and opens existing note and task dialogs', async ({ page }) => {
|
|
await page.goto('/?project=demo-project');
|
|
|
|
const notesToggle = page.getByRole('button', { name: /Show Notes \(\d+\)/ });
|
|
await notesToggle.click();
|
|
await expect(page.getByRole('button', { name: /Hide Notes \(\d+\)/ })).toBeVisible();
|
|
await expect(page.locator('#notes-list .note-card')).toHaveCount(2);
|
|
|
|
await page.locator('#notes-list .note-card').first().click();
|
|
await expect(page.locator('#note-dialog')).toBeVisible();
|
|
await expect(page.locator('#note-form input[name="title"]')).not.toHaveValue('');
|
|
await page.keyboard.press('Escape');
|
|
await expect(page.locator('#note-dialog')).not.toBeVisible();
|
|
|
|
await page.locator('#board-columns .task-card').first().click();
|
|
await expect(page.locator('#task-dialog')).toBeVisible();
|
|
await expect(page.locator('#task-form input[name="title"]')).not.toHaveValue('');
|
|
await page.keyboard.press('Escape');
|
|
await expect(page.locator('#task-dialog')).not.toBeVisible();
|
|
});
|
|
|
|
test('toggles the trash section and shows trashed tasks', async ({ page }) => {
|
|
await page.goto('/?project=demo-project');
|
|
|
|
const trashToggle = page.getByRole('button', { name: /Show Trash \(\d+\)/ });
|
|
await trashToggle.click();
|
|
|
|
await expect(page.getByRole('button', { name: /Hide Trash \(\d+\)/ })).toBeVisible();
|
|
await expect(page.locator('#trash-columns .task-card')).toHaveCount(1);
|
|
await expect(page.locator('#trash-dropzone-meta')).toContainText('1 task');
|
|
});
|
|
});
|