mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-16 04:43:35 +00:00
Update test time until (#1809)
* test views test timeline * timeline show seconds when less than 2m * fix: countown typings * refactor: backstage schedule item * chore: lint
This commit is contained in:
@@ -1,77 +1,125 @@
|
||||
import { expect, test } from '@playwright/test';
|
||||
import { expect, Locator, Page, test } from '@playwright/test';
|
||||
|
||||
test('time until absolute', async ({ page }) => {
|
||||
await page.goto('http://localhost:4001/editor');
|
||||
test('time until absolute', async ({ context }) => {
|
||||
const editor = await context.newPage();
|
||||
const op = await context.newPage();
|
||||
const timeline = await context.newPage();
|
||||
const countdown = await context.newPage();
|
||||
await editor.goto('/editor');
|
||||
await op.goto('/op');
|
||||
await timeline.goto('/timeline');
|
||||
|
||||
await page.getByRole('button', { name: 'Clear all' }).click();
|
||||
await page.getByRole('button', { name: 'Delete all' }).click();
|
||||
await editor.getByRole('button', { name: 'Clear all' }).click();
|
||||
await editor.getByRole('button', { name: 'Delete all' }).click();
|
||||
|
||||
await page.getByRole('button', { name: 'Create Event' }).click();
|
||||
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await editor.getByRole('button', { name: 'Create Event' }).click();
|
||||
await editor.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await editor.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await editor.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
|
||||
await page.getByRole('button', { name: 'Absolute' }).click();
|
||||
await page.getByTestId('entry-1').getByLabel('Start event').click();
|
||||
await expect(page.getByTestId('offset')).not.toContainText('00:00:00'); // This might be a bad test requires that the test is not run at 0h
|
||||
await page.getByLabel('Pause event').click();
|
||||
await editor.getByTestId('entry-1').getByTestId('rundown-event').click();
|
||||
const ids = new Array<string>();
|
||||
ids.push(await editor.getByTestId('editor-container').getByLabel('Event ID (read only)').inputValue());
|
||||
await editor.getByTestId('entry-2').getByTestId('rundown-event').click();
|
||||
ids.push(await editor.getByTestId('editor-container').getByLabel('Event ID (read only)').inputValue());
|
||||
await editor.getByTestId('entry-3').getByTestId('rundown-event').click();
|
||||
ids.push(await editor.getByTestId('editor-container').getByLabel('Event ID (read only)').inputValue());
|
||||
await editor.getByTestId('entry-4').getByTestId('rundown-event').click();
|
||||
ids.push(await editor.getByTestId('editor-container').getByLabel('Event ID (read only)').inputValue());
|
||||
|
||||
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('9m');
|
||||
await expect(page.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('19m');
|
||||
await expect(page.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('29m');
|
||||
await countdown.goto('/countdown?' + ids.join('&sub='));
|
||||
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').fill('6h');
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
const locatorElements2 = [
|
||||
editor.getByTestId('entry-2').getByTestId('rundown-event'),
|
||||
op.getByTestId('2').getByTestId('time-until'),
|
||||
timeline.getByTestId('2'),
|
||||
timeline.getByTestId('next'),
|
||||
countdown.getByTestId('2'),
|
||||
];
|
||||
const locatorElements3 = [
|
||||
editor.getByTestId('entry-3').getByTestId('rundown-event'),
|
||||
op.getByTestId('3').getByTestId('time-until'),
|
||||
timeline.getByTestId('3'),
|
||||
timeline.getByTestId('followedBy'),
|
||||
countdown.getByTestId('3'),
|
||||
];
|
||||
const locatorElements4 = [
|
||||
editor.getByTestId('entry-4').getByTestId('rundown-event'),
|
||||
op.getByTestId('4').getByTestId('time-until'),
|
||||
timeline.getByTestId('4'),
|
||||
countdown.getByTestId('4'),
|
||||
];
|
||||
|
||||
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('5h59m');
|
||||
await expect(page.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('6h9m');
|
||||
await expect(page.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('6h19m');
|
||||
await editor.getByRole('button', { name: 'Absolute' }).click();
|
||||
await editor.getByTestId('entry-1').getByLabel('Start event').click();
|
||||
await expect(editor.getByTestId('offset')).not.toContainText('00:00:00'); // This might be a bad test requires that the test is not run at 0h
|
||||
await editor.getByLabel('Pause event').click();
|
||||
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').fill('30s');
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
await testTimes(locatorElements2, '9m');
|
||||
await testTimes(locatorElements3, '19m');
|
||||
await testTimes(locatorElements4, '29m');
|
||||
|
||||
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('30s');
|
||||
await expect(page.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('10m');
|
||||
await expect(page.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('20m');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').fill('6h');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
|
||||
await testTimes(locatorElements2, '5h59m');
|
||||
await testTimes(locatorElements3, '6h9m');
|
||||
await testTimes(locatorElements4, '6h19m');
|
||||
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').fill('30s');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
|
||||
await expect(editor.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('30s');
|
||||
await expect(editor.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('10m');
|
||||
await expect(editor.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('20m');
|
||||
|
||||
await testTimes(locatorElements2, '30s');
|
||||
await testTimes(locatorElements3, '10m');
|
||||
await testTimes(locatorElements4, '20m');
|
||||
});
|
||||
|
||||
test('time until relative', async ({ page }) => {
|
||||
await page.goto('http://localhost:4001/editor');
|
||||
async function testTimes(locators: Locator[], value: string) {
|
||||
await locators.map(async (locator) => await expect(locator).toContainText(value));
|
||||
}
|
||||
|
||||
await page.getByRole('button', { name: 'Clear all' }).click();
|
||||
await page.getByRole('button', { name: 'Delete all' }).click();
|
||||
test('time until relative', async ({ context }) => {
|
||||
const editor = await context.newPage();
|
||||
editor.goto('http://localhost:4001/editor');
|
||||
|
||||
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();
|
||||
await page.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await editor.getByRole('button', { name: 'Clear all' }).click();
|
||||
await editor.getByRole('button', { name: 'Delete all' }).click();
|
||||
|
||||
await page.getByRole('button', { name: 'Relative' }).click();
|
||||
await page.getByTestId('entry-1').getByLabel('Start event').click();
|
||||
await expect(page.getByTestId('offset')).toContainText('00:00:00'); // This might be a bad test as it ruires the evaluation to happen within 1s
|
||||
await page.getByLabel('Pause event').click();
|
||||
await editor.getByRole('button', { name: 'Create Event' }).click();
|
||||
await editor.getByRole('button', { name: 'Event' }).nth(4).click();
|
||||
await editor.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
await editor.getByRole('button', { name: 'Event', exact: true }).nth(1).click();
|
||||
|
||||
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('9m');
|
||||
await expect(page.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('19m');
|
||||
await expect(page.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('29m');
|
||||
await editor.getByRole('button', { name: 'Relative' }).click();
|
||||
await editor.getByTestId('entry-1').getByLabel('Start event').click();
|
||||
await expect(editor.getByTestId('offset')).toContainText('00:00:00'); // This might be a bad test as it ruires the evaluation to happen within 1s
|
||||
await editor.getByLabel('Pause event').click();
|
||||
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').fill('6h');
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
await expect(editor.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('9m');
|
||||
await expect(editor.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('19m');
|
||||
await expect(editor.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('29m');
|
||||
|
||||
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('5h59m');
|
||||
await expect(page.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('6h9m');
|
||||
await expect(page.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('6h19m');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').fill('6h');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').fill('30s');
|
||||
await page.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
await expect(editor.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('5h59m');
|
||||
await expect(editor.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('6h9m');
|
||||
await expect(editor.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('6h19m');
|
||||
|
||||
await expect(page.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('30s');
|
||||
await expect(page.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('10m');
|
||||
await expect(page.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('20m');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').click();
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').fill('30s');
|
||||
await editor.getByTestId('entry-1').getByTestId('time-input-duration').press('Enter');
|
||||
|
||||
await page.getByRole('button', { name: 'Absolute' }).click();
|
||||
await expect(editor.getByTestId('entry-2').getByTestId('rundown-event')).toContainText('30s');
|
||||
await expect(editor.getByTestId('entry-3').getByTestId('rundown-event')).toContainText('10m');
|
||||
await expect(editor.getByTestId('entry-4').getByTestId('rundown-event')).toContainText('20m');
|
||||
|
||||
await editor.getByRole('button', { name: 'Absolute' }).click();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user