mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-14 20:03:52 +00:00
V2 e2e playwright (#343)
* test: create utility for uploading test-db * chore: upgrade deps * refactor: remove unused functions * chore: create testing boilerplate * test: upload showfile
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
import { test } from '@playwright/test';
|
||||
|
||||
test('test', async ({ page }) => {
|
||||
await page.goto('http://localhost:4001/editor');
|
||||
await page.getByRole('button', { name: 'Event...' }).click();
|
||||
await page.getByRole('menuitem', { name: 'Delete all events' }).click();
|
||||
|
||||
await page.getByRole('button', { name: 'Upload showfile' }).click();
|
||||
await page.getByLabel('Select file to upload').click();
|
||||
await page.getByLabel('Select file to upload').setInputFiles('e2e/tests/fixtures/test-db.json');
|
||||
await page.getByRole('button', { name: 'Upload' }).click();
|
||||
await page.getByRole('button', { name: 'Close' }).click();
|
||||
|
||||
// asset test events
|
||||
await page.getByPlaceholder('Start').first().click();
|
||||
await page.getByText('First test event').click();
|
||||
await page.getByTestId('delay-input').click();
|
||||
await page
|
||||
.locator('div')
|
||||
.filter({ hasText: /^SED\+10minNew start: 10:10:00$/ })
|
||||
.getByPlaceholder('Start')
|
||||
.click();
|
||||
await page.getByText('+10minNew start: 10:10:00').click();
|
||||
await page.getByText('Second test event').click();
|
||||
await page.getByText('Lunch').click();
|
||||
await page.getByText('Third test event').click();
|
||||
});
|
||||
Vendored
+183
@@ -0,0 +1,183 @@
|
||||
{
|
||||
"rundown": [
|
||||
{
|
||||
"title": "First test event",
|
||||
"subtitle": "",
|
||||
"presenter": "",
|
||||
"note": "",
|
||||
"endAction": "continue",
|
||||
"timerType": "count-down",
|
||||
"timeStart": 32400000,
|
||||
"timeEnd": 36000000,
|
||||
"duration": 3600000,
|
||||
"isPublic": true,
|
||||
"skip": false,
|
||||
"colour": "",
|
||||
"user0": "",
|
||||
"user1": "",
|
||||
"user2": "",
|
||||
"user3": "",
|
||||
"user4": "",
|
||||
"user5": "",
|
||||
"user6": "",
|
||||
"user7": "",
|
||||
"user8": "",
|
||||
"user9": "",
|
||||
"type": "event",
|
||||
"revision": 4,
|
||||
"id": "aa42f"
|
||||
},
|
||||
{
|
||||
"duration": 600000,
|
||||
"type": "delay",
|
||||
"revision": 0,
|
||||
"id": "b1d5a"
|
||||
},
|
||||
{
|
||||
"title": "Second test event",
|
||||
"subtitle": "",
|
||||
"presenter": "",
|
||||
"note": "",
|
||||
"endAction": "continue",
|
||||
"timerType": "count-down",
|
||||
"timeStart": 36000000,
|
||||
"timeEnd": 39600000,
|
||||
"duration": 3600000,
|
||||
"isPublic": true,
|
||||
"skip": false,
|
||||
"colour": "",
|
||||
"user0": "",
|
||||
"user1": "",
|
||||
"user2": "",
|
||||
"user3": "",
|
||||
"user4": "",
|
||||
"user5": "",
|
||||
"user6": "",
|
||||
"user7": "",
|
||||
"user8": "",
|
||||
"user9": "",
|
||||
"type": "event",
|
||||
"revision": 2,
|
||||
"id": "d71bc"
|
||||
},
|
||||
{
|
||||
"title": "Lunch",
|
||||
"type": "block",
|
||||
"id": "91682"
|
||||
},
|
||||
{
|
||||
"title": "Third test event",
|
||||
"subtitle": "",
|
||||
"presenter": "",
|
||||
"note": "",
|
||||
"endAction": "continue",
|
||||
"timerType": "count-down",
|
||||
"timeStart": 39600000,
|
||||
"timeEnd": 720000,
|
||||
"duration": 47520000,
|
||||
"isPublic": true,
|
||||
"skip": false,
|
||||
"colour": "",
|
||||
"user0": "",
|
||||
"user1": "",
|
||||
"user2": "",
|
||||
"user3": "",
|
||||
"user4": "",
|
||||
"user5": "",
|
||||
"user6": "",
|
||||
"user7": "",
|
||||
"user8": "",
|
||||
"user9": "",
|
||||
"type": "event",
|
||||
"revision": 2,
|
||||
"id": "da5b4"
|
||||
}
|
||||
],
|
||||
"eventData": {
|
||||
"title": "All about Carlos demo event",
|
||||
"publicUrl": "www.getontime.no",
|
||||
"publicInfo": "WiFi: demoproject \nPassword: ontimeproject",
|
||||
"backstageUrl": "www.getontime.no",
|
||||
"backstageInfo": "WiFi: demobackstage\nPassword: ontimeproject",
|
||||
"endMessage": ""
|
||||
},
|
||||
"settings": {
|
||||
"app": "ontime",
|
||||
"version": 2,
|
||||
"serverPort": 4001,
|
||||
"lock": null,
|
||||
"pinCode": "1234",
|
||||
"timeFormat": "24"
|
||||
},
|
||||
"viewSettings": {
|
||||
"overrideStyles": false
|
||||
},
|
||||
"aliases": [
|
||||
{
|
||||
"id": "0b0b3",
|
||||
"enabled": true,
|
||||
"alias": "test",
|
||||
"pathAndParams": "lower?bg=ff2&text=f00&size=0.6&transition=5"
|
||||
}
|
||||
],
|
||||
"userFields": {
|
||||
"user0": "user0",
|
||||
"user1": "user1",
|
||||
"user2": "user2",
|
||||
"user3": "user3",
|
||||
"user4": "user4",
|
||||
"user5": "user5",
|
||||
"user6": "user6",
|
||||
"user7": "user7",
|
||||
"user8": "user8",
|
||||
"user9": "user9"
|
||||
},
|
||||
"osc": {
|
||||
"portIn": 8888,
|
||||
"portOut": 9999,
|
||||
"targetIP": "127.0.0.1",
|
||||
"enabledIn": false,
|
||||
"enabledOut": false,
|
||||
"subscriptions": {
|
||||
"onLoad": [],
|
||||
"onStart": [],
|
||||
"onPause": [],
|
||||
"onStop": [],
|
||||
"onUpdate": [],
|
||||
"onFinish": []
|
||||
}
|
||||
},
|
||||
"http": {
|
||||
"http": {
|
||||
"user": null,
|
||||
"pwd": null,
|
||||
"messages": {
|
||||
"onLoad": {
|
||||
"url": "",
|
||||
"enabled": false
|
||||
},
|
||||
"onStart": {
|
||||
"url": "",
|
||||
"enabled": false
|
||||
},
|
||||
"onUpdate": {
|
||||
"url": "",
|
||||
"enabled": false
|
||||
},
|
||||
"onPause": {
|
||||
"url": "",
|
||||
"enabled": false
|
||||
},
|
||||
"onStop": {
|
||||
"url": "",
|
||||
"enabled": false
|
||||
},
|
||||
"onFinish": {
|
||||
"url": "",
|
||||
"enabled": false
|
||||
}
|
||||
},
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
// haven't been able to get this to work
|
||||
// it is well discussed in the issues, so should be able to find something
|
||||
// https://playwrightsolutions.com/making-a-post/
|
||||
// https://playwright.dev/docs/api/class-apirequestcontext#api-request-context-fetch
|
||||
// the upload is accepted by backend we receive 400 after upload and parse
|
||||
|
||||
export async function uploadTestDb(request) {
|
||||
const filePath = path.resolve('e2e/tests/fixtures/test-db.json');
|
||||
const file = fs.readFileSync(filePath);
|
||||
|
||||
const response = await request.post('http://localhost:4001/ontime/db?onlyRundown=false', {
|
||||
multipart: {
|
||||
file: {
|
||||
fileName: filePath,
|
||||
mimeType: "application/json",
|
||||
buffer: file,
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
return response;
|
||||
}
|
||||
+4
-1
@@ -1,3 +1,6 @@
|
||||
{
|
||||
"sourceType": "module"
|
||||
"sourceType": "module",
|
||||
"compilerOptions": {
|
||||
"esModuleInterop": true
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user