Skip to content

Commit 94140f9

Browse files
authored
Running playwright tests on CI (#267)
playwright on CI
1 parent df62be2 commit 94140f9

File tree

5 files changed

+188
-255
lines changed

5 files changed

+188
-255
lines changed

tests/e2e/acpu.test.js

-37
This file was deleted.

tests/e2e/bcpu.test.js

+38-44
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,38 @@
1-
// const { _electron: electron } = require('playwright');
2-
// const { test, expect } = require('@playwright/test');
3-
4-
// test('Launch Electron app, select device MPW1 Gemini, and click on BCPU block', async () => {
5-
// const app = await electron.launch({ args: ['main.js'], headless: false });
6-
7-
// const window = await app.firstWindow();
8-
9-
// // selecting MPW1 Gemini from device dropdown
10-
// const deviceDropdown = await window.waitForSelector('#deviceId');
11-
// await deviceDropdown.selectOption('MPW1');
12-
// await window.waitForTimeout(2000); // wait for UI update
13-
14-
// // click on the BCPU block
15-
// const bcpuSelector = '#app > div > div.top-row-container > div.main-table-container.main-border > div.top-l2 > div.top-l2-col1 > div.top-l2-col1-row1 > div:nth-child(2) > div';
16-
// await window.waitForSelector(bcpuSelector);
17-
// await window.click(bcpuSelector);
18-
19-
// // click on "Add" button
20-
// const addButtonSelector = '#app > div > div.table-container.main-border > div > div.cpu-container > div.table-wrapper > button';
21-
// await window.waitForSelector(addButtonSelector, { state: 'visible' });
22-
// await window.click(addButtonSelector);
23-
24-
// // click on "OK" button
25-
// const okButtonSelector = 'button.ant-btn-primary';
26-
// await window.waitForSelector(okButtonSelector, { state: 'visible' });
27-
// await window.click(okButtonSelector);
28-
29-
// // click on Peripherals tab
30-
// const peripheralsTabSelector = '#app > div > div.top-row-container > div.main-table-container.main-border > div.top-l2 > div.top-l2-col1 > div:nth-child(3) > div > div:nth-child(2) > div:nth-child(2) > div.periph-internal-font-header';
31-
// await window.waitForSelector(peripheralsTabSelector, { state: 'visible' });
32-
// await window.click(peripheralsTabSelector);
33-
34-
// // check SPI/QSPI block
35-
// const spiQspiCheckSelector = '#\\30';
36-
// await window.waitForSelector(spiQspiCheckSelector, { state: 'visible' });
37-
// await window.click(spiQspiCheckSelector);
38-
39-
// // waiting to observe result on UI
40-
// await window.waitForTimeout(5000);
41-
42-
// // closing RPE
43-
// await app.close();
44-
// });
1+
const { _electron: electron } = require('playwright');
2+
const { test, expect } = require('@playwright/test');
3+
4+
test('Launch Electron app, select device MPW1 Gemini, and click on BCPU block', async () => {
5+
const app = await electron.launch({ args: ['main.js'], headless: false });
6+
const window = await app.firstWindow();
7+
8+
// Selecting MPW1 Gemini from device dropdown
9+
const deviceDropdown = await window.waitForSelector('#deviceId');
10+
await deviceDropdown.selectOption('MPW1');
11+
12+
// Click on the BCPU block
13+
const bcpuSelector = '#app > div > div.top-row-container > div.main-table-container.main-border > div.top-l2 > div.top-l2-col1 > div.top-l2-col1-row1 > div:nth-child(2) > div';
14+
await window.click(bcpuSelector);
15+
16+
// Click on "Add" button
17+
const addButtonSelector = '#app > div > div.table-container.main-border > div > div.cpu-container > div.table-wrapper > button';
18+
await window.waitForSelector(addButtonSelector, { state: 'visible' });
19+
await window.click(addButtonSelector);
20+
21+
// Click on "OK" button
22+
const okButtonSelector = 'button.ant-btn-primary';
23+
await window.waitForSelector(okButtonSelector, { state: 'visible' });
24+
await window.click(okButtonSelector);
25+
26+
// Click on Peripherals tab
27+
const peripheralsTabSelector = '#app > div > div.top-row-container > div.main-table-container.main-border > div.top-l2 > div.top-l2-col1 > div:nth-child(3)';
28+
await window.click(peripheralsTabSelector);
29+
30+
// Check SPI/QSPI block
31+
const spiQspiCheckSelector = '#\\30';
32+
await window.click(spiQspiCheckSelector);
33+
34+
console.log('BCPU power verified.');
35+
36+
// Close the app
37+
await app.close();
38+
});

tests/e2e/clocking.test.js

+50-50
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,51 @@
1-
// const { _electron: electron } = require('playwright');
2-
// const { test, expect } = require('@playwright/test');
3-
4-
// test('Launch Electron app, select device, toggle ACPU power, click Clocking, Add clock source, and submit form', async () => {
5-
// const app = await electron.launch({ args: ['main.js'] });
6-
// const window = await app.firstWindow();
7-
8-
// // Selecting the device (MPW1 Gemini)
9-
// const deviceDropdown = await window.waitForSelector('#deviceId');
10-
// await deviceDropdown.selectOption('MPW1');
11-
// await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds
12-
13-
// // Selecting Clocking block
14-
// const clockingBlockSelector = '#app > div > div.top-row-container > div.main-table-container.main-border > div.top-l2 > div.top-l2-col2 > div.top-l2-col2-elem > div > div:nth-child(2) > div:nth-child(1) > div';
15-
// const clockingBlock = await window.waitForSelector(clockingBlockSelector);
16-
// await clockingBlock.click();
17-
// await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds
18-
19-
// // Clicking on Add button
20-
// const addButtonSelector = '#app > div > div.table-container.main-border > div > div.power-and-table-wrapper > div.table-wrapper > button';
21-
// const addButton = await window.waitForSelector(addButtonSelector);
22-
// await addButton.click();
23-
// await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds
24-
25-
// // Ensure modal is visible before interacting
26-
// const modalSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div';
27-
// await window.waitForSelector(modalSelector, { state: 'visible', timeout: 5000 }); // Wait for modal
28-
29-
// // Typing description as 'test'
30-
// const descriptionSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div > div:nth-child(1) > div > div.ant-modal-body > div > form > div:nth-child(2) > input[type=text]';
31-
// const descriptionInput = await window.waitForSelector(descriptionSelector);
32-
// await descriptionInput.click();
33-
// await descriptionInput.fill('test');
34-
// await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait for 1 second
35-
36-
// // Typing Port/Signal name as 'test'
37-
// const portSignalSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div > div:nth-child(1) > div > div.ant-modal-body > div > form > div:nth-child(3) > input[type=text]';
38-
// const portSignalInput = await window.waitForSelector(portSignalSelector);
39-
// await portSignalInput.click();
40-
// await portSignalInput.fill('test');
41-
// await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait for 1 second
42-
43-
// // Clicking OK to submit the form
44-
// const okButtonSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div > div:nth-child(1) > div > div.ant-modal-footer > button.ant-btn.css-dev-only-do-not-override-apn68.ant-btn-primary.ant-btn-color-primary.ant-btn-variant-solid';
45-
// const okButton = await window.waitForSelector(okButtonSelector);
46-
// await okButton.click();
47-
48-
// // Closing the test
49-
// await app.close();
50-
// });
1+
const { _electron: electron } = require('playwright');
2+
const { test, expect } = require('@playwright/test');
3+
4+
test('Launch Electron app, select device, toggle ACPU power, click Clocking, Add clock source, and submit form', async () => {
5+
const app = await electron.launch({ args: ['main.js'] });
6+
const window = await app.firstWindow();
7+
8+
// Selecting the device (MPW1 Gemini)
9+
const deviceDropdown = await window.waitForSelector('#deviceId');
10+
await deviceDropdown.selectOption('MPW1');
11+
await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds
12+
13+
// Selecting Clocking block
14+
const clockingBlockSelector = '#app > div > div.top-row-container > div.main-table-container.main-border > div.top-l2 > div.top-l2-col2 > div.top-l2-col2-elem > div > div:nth-child(2) > div:nth-child(1) > div';
15+
const clockingBlock = await window.waitForSelector(clockingBlockSelector);
16+
await clockingBlock.click();
17+
await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds
18+
19+
// Clicking on Add button
20+
const addButtonSelector = '#app > div > div.table-container.main-border > div > div.power-and-table-wrapper > div.table-wrapper > button';
21+
const addButton = await window.waitForSelector(addButtonSelector);
22+
await addButton.click();
23+
await new Promise((resolve) => setTimeout(resolve, 2000)); // Wait for 2 seconds
24+
25+
// Ensure modal is visible before interacting
26+
const modalSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div';
27+
await window.waitForSelector(modalSelector, { state: 'visible', timeout: 5000 }); // Wait for modal
28+
29+
// Typing description as 'test'
30+
const descriptionSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div > div:nth-child(1) > div > div.ant-modal-body > div > form > div:nth-child(2) > input[type=text]';
31+
const descriptionInput = await window.waitForSelector(descriptionSelector);
32+
await descriptionInput.click();
33+
await descriptionInput.fill('test');
34+
await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait for 1 second
35+
36+
// Typing Port/Signal name as 'test'
37+
const portSignalSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div > div:nth-child(1) > div > div.ant-modal-body > div > form > div:nth-child(3) > input[type=text]';
38+
const portSignalInput = await window.waitForSelector(portSignalSelector);
39+
await portSignalInput.click();
40+
await portSignalInput.fill('test');
41+
await new Promise((resolve) => setTimeout(resolve, 1000)); // Wait for 1 second
42+
43+
// Clicking OK to submit the form
44+
const okButtonSelector = 'body > div:nth-child(3) > div > div.ant-modal-wrap > div > div:nth-child(1) > div > div.ant-modal-footer > button.ant-btn.css-dev-only-do-not-override-49qm.ant-btn-primary.ant-btn-color-primary.ant-btn-variant-solid > span';
45+
const okButton = await window.waitForSelector(okButtonSelector);
46+
await okButton.click();
47+
48+
// Closing the test
49+
await app.close();
50+
});
5151

0 commit comments

Comments
 (0)