Files
ontime/e2e/tests/features/213-arrange-while-playing.spec.ts
T
Alex Christoffer Rasmussen cf206e6220 feat: Vite 8 (#2018)
* chore: upgrade vite

* fix: inconsistentCjsInterop for ReactQR

* chore: e2e tests should use relativve path and get host from playwright config

* refactor: drop qr code dependency

---------

Co-authored-by: alex-Arc <omnivox@LAPTOP-RC5SNBVV.localdomain>
2026-03-24 09:11:57 +01:00

73 lines
3.1 KiB
TypeScript

import { expect, test } from '@playwright/test';
test('Rearrange while playing', async ({ page }) => {
await page.goto('/rundown');
await page.getByRole('button', { name: 'Edit' }).click();
// clear rundown
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Clear all' }).click();
await page.getByRole('button', { name: 'Delete all' }).click();
// create events
await page.getByRole('button', { name: 'Create Event' }).click();
await page.getByRole('button', { name: 'Event' }).nth(4).click();
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
// start event 2
await page.getByTestId('entry-2').getByRole('button', { name: 'Start event' }).click();
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toHaveAttribute('data-running');
// move event 2 up
await page.getByTestId('entry-2').getByTestId('rundown-event').locator('div').filter({ hasText: '2' }).click();
await page
.getByTestId('entry-2')
.getByTestId('rundown-event')
.locator('div')
.filter({ hasText: '2' })
.press('Alt+Control+ArrowUp');
// event CUE1 should new be entry 2
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('1');
// but entry 1 should be the one playing (it will be unlinked as it will be the first event)
await expect(page.getByTestId('entry-1').getByTestId('rundown-event')).toHaveAttribute('data-running');
});
test('flag and unflag an event while playing', async ({ page }) => {
await page.goto('/editor/');
await page.getByRole('button', { name: 'Edit' }).click();
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Clear all' }).click();
await page.getByRole('button', { name: 'Delete all' }).click();
await page.getByRole('button', { name: 'Create Event' }).click();
await page.getByRole('button', { name: 'Event' }).nth(4).click();
//start the the first event
await page.getByTestId('entry-1').getByRole('button', { name: 'Start event' }).click();
// there should be no flag times
await expect(page.getByTestId('flag-plannedStart')).toContainText('––:––:––');
await expect(page.getByTestId('flag-expectedStart')).toContainText('––:––:––');
// set the flag
await page.getByTestId('entry-2').getByTestId('rundown-event').getByText('2').click({
button: 'right',
});
await page.getByRole('menuitem', { name: 'Add flag' }).click();
// now there should be flag times
await expect(page.getByTestId('flag-plannedStart')).not.toContainText('––:––:––');
await expect(page.getByTestId('flag-expectedStart')).not.toContainText('––:––:––');
// remove the flag again
await page.getByTestId('entry-2').getByTestId('rundown-event').getByText('2').click({
button: 'right',
});
await page.getByRole('menuitem', { name: 'Remove flag' }).click();
// there should be no flag times
await expect(page.getByTestId('flag-plannedStart')).toContainText('––:––:––');
await expect(page.getByTestId('flag-expectedStart')).toContainText('––:––:––');
});