Rundown modes (#864)

* refactor: simplify settings

* refactor: quick add around selection

* refactor: no action menu in delay block

* refactor: no action menu in event block

* style: context menu dark

* refactor: context menu actions
This commit is contained in:
Carlos Valente
2024-04-02 20:09:27 +02:00
committed by GitHub
parent 01000f8837
commit 10852eecdd
22 changed files with 276 additions and 331 deletions
+8 -11
View File
@@ -4,9 +4,8 @@ test('delay blocks add time to events', async ({ page }) => {
await page.goto('http://localhost:4001/editor');
// delete all events and add a new one
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Delete all events' }).click();
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('button', { name: 'Edit mode' }).click();
await page.getByRole('button', { name: 'Clear rundown' }).click();
await page.getByRole('button', { name: 'Create event' }).click();
// add data to new event
@@ -18,8 +17,7 @@ test('delay blocks add time to events', async ({ page }) => {
await page.getByTestId('rundown').getByPlaceholder('Duration').press('Enter');
// add delay block
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Add delay at start' }).click();
await page.getByRole('button', { name: 'Delay Alt ⇧ D' }).click();
// fill positive delay
await page.getByTestId('delay-input').click();
@@ -37,8 +35,7 @@ test('delay blocks add time to events', async ({ page }) => {
// add new delay
await page.getByTestId('rundown').getByPlaceholder('Start').click();
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Add delay at start' }).click();
await page.getByRole('button', { name: 'Delay Alt ⇧ D' }).click();
await page.getByTestId('delay-input').click();
await page.getByTestId('delay-input').fill('10m');
await page.getByTestId('delay-input').press('Enter');
@@ -54,9 +51,10 @@ test('delays are show correctly', async ({ page }) => {
await page.goto('http://localhost:4001/editor');
// add a test event
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Delete all events' }).click();
await page.getByRole('button', { name: 'Edit mode' }).click();
await page.getByRole('button', { name: 'Clear rundown' }).click();
await page.getByRole('button', { name: 'Create Event' }).click();
await page.getByTestId('time-input-timeStart').click();
await page.getByTestId('rundown').getByTestId('time-input-timeStart').click();
await page.getByTestId('rundown').getByTestId('time-input-timeStart').fill('10');
@@ -70,8 +68,7 @@ test('delays are show correctly', async ({ page }) => {
await expect(page.getByTestId('entry-1').locator('#block-status')).toHaveAttribute('data-ispublic', 'true');
// add a delay
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Add delay at start' }).click();
await page.getByRole('button', { name: 'Delay Alt ⇧ D' }).click();
await page.getByTestId('delay-input').click();
await page.getByTestId('delay-input').fill('1');
await page.getByTestId('delay-input').press('Enter');
+10 -11
View File
@@ -4,27 +4,26 @@ test('CRUD operations on the rundown', async ({ page }) => {
await page.goto('http://localhost:4001/editor');
// clear rundown
await page.getByRole('button', { name: 'Run mode' }).click();
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Delete all events' }).click();
await page.getByRole('button', { name: 'Edit mode' }).click();
await page.getByRole('button', { name: 'Clear rundown' }).click();
// create event from the rundown empty button
await page.getByRole('button', { name: 'Create Event' }).click();
// create blocks using the quick add buttons
await page.getByRole('button', { name: 'Block' }).click();
await page.getByRole('button', { name: 'Delay' }).click();
await page.getByTestId('quick-add-event').click();
await page.getByRole('button', { name: 'Block' }).nth(1).click();
await page.getByRole('button', { name: 'Delay' }).nth(1).click();
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
// test quick add options - start is last end
// test quick add options - star2+5-t is last end
await page.getByTestId('entry-2').getByTestId('time-input-duration').fill('20m');
await page.getByTestId('quick-add-event').click();
await expect(page.getByLabel('Link to previous')).toBeChecked();
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
await expect(page.getByLabel('Link to previous').nth(1)).toBeChecked();
expect(await page.getByTestId('entry-3').getByTestId('time-input-timeStart').inputValue()).toContain('00:30:00');
// test quick add options - event is public
await expect(page.getByLabel('Event is public')).toBeChecked();
await page.getByTestId('quick-add-event').click();
await expect(page.getByLabel('Event is public').nth(1)).toBeChecked();
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
await expect(page.getByTestId('entry-4').locator('#block-status')).toHaveAttribute('data-ispublic', 'true');
});
+23 -20
View File
@@ -3,9 +3,8 @@ import { test, expect } from '@playwright/test';
test('smoke test operator', async ({ page }) => {
// make some boilerplate
await page.goto('http://localhost:4001/editor');
await page.getByRole('button', { name: 'Run mode' }).click();
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Delete all events' }).click();
await page.getByRole('button', { name: 'Edit mode' }).click();
await page.getByRole('button', { name: 'Clear rundown' }).click();
await page.getByRole('button', { name: 'Create Event' }).click();
await page.getByTestId('time-input-timeStart').fill('1m');
@@ -13,36 +12,40 @@ test('smoke test operator', async ({ page }) => {
await page.getByTestId('time-input-duration').fill('1m');
await page.getByTestId('time-input-duration').press('Enter');
await page.getByTestId('quick-add-event').click();
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
await page.getByTestId('entry-2').getByTestId('lock__duration').click();
await page.getByTestId('entry-2').getByTestId('time-input-duration').fill('1m');
await page.getByTestId('entry-2').getByTestId('time-input-duration').press('Enter');
await page.getByTestId('entry-2').getByTestId('time-input-duration').press('Enter');
await page.getByTestId('quick-add-event').click();
await page.getByRole('button', { name: 'Event Alt E', exact: true }).click();
await page.getByTestId('entry-3').getByTestId('lock__duration').click();
await page.getByTestId('entry-3').getByTestId('time-input-duration').fill('1m');
await page.getByTestId('entry-3').getByTestId('time-input-duration').press('Enter');
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Add block at start' }).click();
await page.getByTestId('quick-add-block').click();
await page.getByRole('button', { name: 'Block', exact: true }).nth(0).click();
await page.getByRole('button', { name: 'Edit mode' }).click();
await page.getByTestId('entry-1').getByRole('button', { name: 'Event options' }).first().click();
await page.getByLabel('Title', { exact: true }).click();
await page.getByLabel('Title', { exact: true }).fill('title 1');
await page.getByLabel('Title', { exact: true }).press('Enter');
await page.getByTestId('entry-1').click({ button: 'right' });
await page.getByRole('menuitem', { name: 'Event after' }).click();
await page.getByTestId('entry-2').getByRole('button', { name: 'Event options' }).first().click();
await page.getByLabel('Title', { exact: true }).click();
await page.getByLabel('Title', { exact: true }).fill('title 2');
await page.getByLabel('Title', { exact: true }).press('Enter');
await page.getByTestId('entry-1').getByTestId('block__title').click();
await page.getByTestId('entry-1').getByTestId('block__title').fill('title 1');
await page.getByTestId('entry-1').getByTestId('block__title').press('Enter');
await page.getByTestId('entry-3').getByRole('button', { name: 'Event options' }).first().click();
await page.getByLabel('Title', { exact: true }).click();
await page.getByLabel('Title', { exact: true }).fill('title 3');
await page.getByLabel('Title', { exact: true }).press('Enter');
await page.getByTestId('entry-2').click({ button: 'right' });
await page.getByRole('menuitem', { name: 'Event after' }).click();
await page.getByTestId('entry-2').getByTestId('block__title').click();
await page.getByTestId('entry-2').getByTestId('block__title').fill('title 2');
await page.getByTestId('entry-2').getByTestId('block__title').press('Enter');
await page.getByTestId('entry-3').click({ button: 'right' });
await page.getByRole('menuitem', { name: 'Event after' }).click();
await page.getByTestId('entry-3').getByTestId('block__title').click();
await page.getByTestId('entry-3').getByTestId('block__title').fill('title 3');
await page.getByTestId('entry-3').getByTestId('block__title').press('Enter');
// start an event
await page.getByTestId('panel-timer-control').getByRole('button', { name: 'Start' }).click();
@@ -4,8 +4,8 @@ const fileToUpload = 'e2e/tests/fixtures/test-sheet.xlsx';
test('sheet file upload', async ({ page }) => {
await page.goto('http://localhost:4001/editor');
await page.getByRole('button', { name: 'Rundown menu' }).click();
await page.getByRole('menuitem', { name: 'Delete all events' }).click();
await page.getByRole('button', { name: 'Edit mode' }).click();
await page.getByRole('button', { name: 'Clear rundown' }).click();
await page.getByRole('button', { name: 'Toggle settings' }).click();
await page.getByRole('button', { name: 'Import spreadsheet' }).click();