63 lines
1.9 KiB
TypeScript
63 lines
1.9 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
async function navigateToEditPage(page) {
|
|
await page.goto('/services');
|
|
await page.waitForLoadState('networkidle');
|
|
|
|
const editButton = page.getByTestId('service-list-edit-button').first();
|
|
const hasEditableService = await editButton.isVisible().catch(() => false);
|
|
|
|
if (!hasEditableService) {
|
|
return false;
|
|
}
|
|
|
|
await editButton.click();
|
|
await page.waitForLoadState('networkidle');
|
|
return true;
|
|
}
|
|
|
|
test('navigate to first editable service edit page', async ({ page }) => {
|
|
const navigated = await navigateToEditPage(page);
|
|
if (!navigated) {
|
|
test.skip();
|
|
}
|
|
|
|
await expect(page).toHaveURL(/.*services\/\d+\/edit/);
|
|
|
|
const agendaSection = page.getByTestId('agenda-section');
|
|
const emptyState = page.getByText('Keine Ablauf-Elemente vorhanden');
|
|
const hasAgenda = await agendaSection.isVisible().catch(() => false);
|
|
const hasEmptyState = await emptyState.isVisible().catch(() => false);
|
|
|
|
expect(hasAgenda || hasEmptyState).toBe(true);
|
|
});
|
|
|
|
test.skip('moderation block accordion — replaced by agenda view', async () => {});
|
|
|
|
test('agenda items with slides show slide uploader', async ({ page }) => {
|
|
const navigated = await navigateToEditPage(page);
|
|
if (!navigated) {
|
|
test.skip();
|
|
}
|
|
|
|
const agendaRows = page.getByTestId('agenda-item-row');
|
|
const rowCount = await agendaRows.count();
|
|
|
|
if (rowCount === 0) {
|
|
test.skip();
|
|
}
|
|
|
|
const addSlidesBtn = page.getByTestId('agenda-item-add-slides').first();
|
|
const hasSlidesBtn = await addSlidesBtn.isVisible().catch(() => false);
|
|
|
|
if (!hasSlidesBtn) {
|
|
test.skip();
|
|
}
|
|
|
|
await expect(addSlidesBtn).toBeVisible();
|
|
});
|
|
|
|
test.skip('existing moderation slides display as thumbnails — replaced by agenda item slides', async () => {});
|
|
|
|
test.skip('delete button on moderation slide triggers confirmation — replaced by agenda item slides', async () => {});
|