Skip to content

Commit 12a5b5e

Browse files
committed
Fixed tests after job id column removal
1 parent dbaf562 commit 12a5b5e

File tree

2 files changed

+49
-34
lines changed

2 files changed

+49
-34
lines changed

__tests__/JobsList.test.js

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -54,61 +54,61 @@ describe('JobsList', () => {
5454
await fireEvent.change(projectFilter, { target: { value: '1' } });
5555
table = result.getByRole('table');
5656
expect(table.querySelectorAll('tbody tr').length).eq(1);
57-
expect(table.querySelectorAll('tbody tr td')[5].textContent).eq('input1');
57+
expect(table.querySelectorAll('tbody tr td')[4].textContent).eq('input1');
5858
await clearFilters(result);
5959

6060
// Filter by workflow
6161
await fireEvent.change(workflowFilter, { target: { value: '2' } });
6262
table = result.getByRole('table');
6363
expect(table.querySelectorAll('tbody tr').length).eq(2);
64-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[5].textContent).eq('input3');
65-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[5].textContent).eq('input2');
64+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[4].textContent).eq('input3');
65+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[4].textContent).eq('input2');
6666
await clearFilters(result);
6767

6868
// Filter by input dataset
6969
await fireEvent.change(inputDatasetFilter, { target: { value: '3' } });
7070
table = result.getByRole('table');
7171
expect(table.querySelectorAll('tbody tr').length).eq(1);
72-
expect(table.querySelectorAll('tbody tr td')[5].textContent).eq('input2');
72+
expect(table.querySelectorAll('tbody tr td')[4].textContent).eq('input2');
7373
await clearFilters(result);
7474

7575
// Filter by output dataset
7676
await fireEvent.change(outputDatasetFilter, { target: { value: '4' } });
7777
table = result.getByRole('table');
7878
expect(table.querySelectorAll('tbody tr').length).eq(1);
79-
expect(table.querySelectorAll('tbody tr td')[6].textContent).eq('output2');
79+
expect(table.querySelectorAll('tbody tr td')[5].textContent).eq('output2');
8080
await clearFilters(result);
8181

8282
// Filter by job status
8383
await fireEvent.change(statusFilter, { target: { value: 'running' } });
8484
table = result.getByRole('table');
8585
expect(table.querySelectorAll('tbody tr').length).eq(1);
86-
expect(table.querySelectorAll('tbody tr td')[5].textContent).eq('input3');
86+
expect(table.querySelectorAll('tbody tr td')[4].textContent).eq('input3');
8787
await clearFilters(result);
8888

8989
// Verify default sorting
9090
table = result.getByRole('table');
91-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[1].textContent).eq(
91+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[0].textContent).eq(
9292
'10/30/2023, 9:30:38 AM'
9393
);
94-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[1].textContent).eq(
94+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[0].textContent).eq(
9595
'10/30/2023, 9:15:38 AM'
9696
);
97-
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[1].textContent).eq(
97+
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[0].textContent).eq(
9898
'10/30/2023, 9:00:38 AM'
9999
);
100100

101101
// Sort by start date
102102
const startDateSorter = table.querySelector('thead th:nth-child(2)');
103103
await fireEvent.click(startDateSorter);
104104
table = result.getByRole('table');
105-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[1].textContent).eq(
105+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[0].textContent).eq(
106106
'10/30/2023, 9:00:38 AM'
107107
);
108-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[1].textContent).eq(
108+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[0].textContent).eq(
109109
'10/30/2023, 9:15:38 AM'
110110
);
111-
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[1].textContent).eq(
111+
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[0].textContent).eq(
112112
'10/30/2023, 9:30:38 AM'
113113
);
114114
});
@@ -127,17 +127,17 @@ describe('JobsList', () => {
127127
});
128128
let table = result.getByRole('table');
129129
expect(table.querySelectorAll('tbody tr').length).eq(3);
130-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[7].textContent).eq('running');
131-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[7].textContent).eq('failed');
132-
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[7].textContent).eq('done');
130+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[6].textContent).eq('running');
131+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[6].textContent).eq('failed');
132+
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[6].textContent).eq('done');
133133

134134
const refreshButton = result.getByRole('button', { name: 'Refresh' });
135135
await fireEvent.click(refreshButton);
136136

137137
table = result.getByRole('table');
138-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[7].textContent).eq('done');
139-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[7].textContent).eq('failed');
140-
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[7].textContent).eq('done');
138+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[6].textContent).eq('done');
139+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[6].textContent).eq('failed');
140+
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[6].textContent).eq('done');
141141
});
142142

143143
it('cancel job', async () => {
@@ -190,19 +190,19 @@ describe('JobsList', () => {
190190
});
191191
let table = result.getByRole('table');
192192
expect(table.querySelectorAll('tbody tr').length).eq(3);
193-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[7].textContent).eq('running');
194-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[7].textContent).eq('failed');
195-
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[7].textContent).eq('done');
193+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[6].textContent).eq('running');
194+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[6].textContent).eq('failed');
195+
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[6].textContent).eq('done');
196196

197197
vi.advanceTimersByTime(3500);
198198
vi.useRealTimers();
199199
// trigger table update
200200
await new Promise(setTimeout);
201201

202202
table = result.getByRole('table');
203-
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[7].textContent).eq('done');
204-
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[7].textContent).eq('failed');
205-
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[7].textContent).eq('done');
203+
expect(table.querySelectorAll('tbody tr:nth-child(1) td')[6].textContent).eq('done');
204+
expect(table.querySelectorAll('tbody tr:nth-child(2) td')[6].textContent).eq('failed');
205+
expect(table.querySelectorAll('tbody tr:nth-child(3) td')[6].textContent).eq('done');
206206
} finally {
207207
vi.useRealTimers();
208208
}

tests/jobs.spec.js

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,19 +37,18 @@ test('Execute a job and show it on the job tables', async ({ page, workflow }) =
3737
await page.locator('table tbody').waitFor();
3838
expect(await page.locator('table tbody tr').count()).toEqual(1);
3939
const cells = await page.locator('table tbody tr td').allInnerTexts();
40-
const jobId = cells[0];
41-
expect(cells[3]).toEqual('input');
42-
expect(cells[4]).toEqual('output');
40+
expect(cells[2]).toEqual('input');
41+
expect(cells[3]).toEqual('output');
4342

4443
// Open Info modal
4544
await page.locator('table tbody tr').getByRole('button', { name: 'Info' }).click();
4645
modalTitle = page.locator('.modal.show .modal-title');
4746
await modalTitle.waitFor();
48-
await expect(modalTitle).toHaveText(`Workflow Job #${jobId}`);
47+
await expect(modalTitle).toContainText(`Workflow Job #`);
4948

5049
const items = await page.locator('.modal.show').getByRole('listitem').allInnerTexts();
5150
expect(items[0]).toEqual('Id');
52-
expect(items[1]).toEqual(jobId);
51+
const jobId = items[1];
5352
expect(items[2]).toEqual('Workflow');
5453
expect(items[3]).toEqual(workflow.workflowName);
5554
expect(items[4]).toEqual('Project');
@@ -65,14 +64,14 @@ test('Execute a job and show it on the job tables', async ({ page, workflow }) =
6564
const rows = await page.locator('table tbody tr').all();
6665
let jobRow = null;
6766
for (const row of rows) {
68-
const id = await row.locator('td').first().innerText();
67+
const id = await getJobId(page, row);
6968
if (id === jobId) {
7069
jobRow = row;
7170
const cells = await row.locator('td').allInnerTexts();
72-
expect(cells[3]).toEqual(workflow.projectName);
73-
expect(cells[4]).toEqual(workflow.workflowName);
74-
expect(cells[5]).toEqual('input');
75-
expect(cells[6]).toEqual('output');
71+
expect(cells[2]).toEqual(workflow.projectName);
72+
expect(cells[3]).toEqual(workflow.workflowName);
73+
expect(cells[4]).toEqual('input');
74+
expect(cells[5]).toEqual('output');
7675
break;
7776
}
7877
}
@@ -87,3 +86,19 @@ test('Execute a job and show it on the job tables', async ({ page, workflow }) =
8786
await expect(modalTitle).toHaveText('Workflow Job logs');
8887
expect(await page.locator('.modal.show .modal-body').innerText()).toContain('TASK ERROR');
8988
});
89+
90+
/**
91+
* @param {import('@playwright/test').Page} page
92+
* @param {import('@playwright/test').Locator} row
93+
* @returns {Promise<string>}
94+
*/
95+
async function getJobId(page, row) {
96+
await row.getByRole('button', { name: 'Info' }).click();
97+
const modalTitle = page.locator('.modal.show .modal-title');
98+
await modalTitle.waitFor();
99+
const text = await modalTitle.innerText();
100+
const match = text.match('Workflow Job #(\\d+)');
101+
expect(match).not.toBeNull();
102+
await page.locator('.modal.show .modal-header [aria-label="Close"]').click();
103+
return /** @type {RegExpMatchArray} */ (match)[1];
104+
}

0 commit comments

Comments
 (0)