mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-16 12:53:32 +00:00
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:
@@ -4,8 +4,8 @@ const fileToUpload = 'e2e/tests/fixtures/test-db.json';
|
||||
|
||||
test('project 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: 'Project', exact: true }).click();
|
||||
|
||||
@@ -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');
|
||||
|
||||
@@ -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');
|
||||
});
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user