Fix: rearrange playing event (#1640)

* creat failing test

* find and pass index of eventNow in case it moved

* fix cache invalidate edits should also recalculate timer

* use coluor as test indicator

* fixed empty cue guard

Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>

---------

Co-authored-by: Carlos Valente <34649812+cpvalente@users.noreply.github.com>
This commit is contained in:
Alex Christoffer Rasmussen
2025-06-17 15:59:23 +02:00
committed by GitHub
parent fb93063b47
commit 4e561cf01f
3 changed files with 34 additions and 5 deletions
@@ -0,0 +1,27 @@
import { test, expect } from '@playwright/test';
test('Rearrange while playing', async ({ page }) => {
await page.goto('http://localhost:4001/rundown');
// clear rundown
await page.getByRole('button', { name: 'Clear rundown' }).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').locator('#event-block')).toHaveCSS('background-color', 'rgb(8, 122, 39)');
// move event 2 up
await page.getByTestId('entry-2').locator('#event-block').getByText('2').click();
await page.getByTestId('entry-2').locator('#event-block div').filter({ hasText: '2' }).press('Alt+Control+ArrowUp');
// event CUE1 should new be entry 2
await expect(page.getByTestId('entry-2').locator('#event-block')).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').locator('#event-block')).toHaveCSS('background-color', 'rgb(8, 122, 39)');
});