Skip to content

Commit fc676ca

Browse files
author
NarrowsProjects
committed
further extend test
1 parent b422ff3 commit fc676ca

2 files changed

Lines changed: 66 additions & 14 deletions

File tree

test/public/Filters/FilteringModel.test.js

Lines changed: 63 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@ module.exports = () => {
3030
[page, browser] = await defaultBefore();
3131
});
3232

33-
// Not all filters for the pages will be checked, as many of them are identical.
33+
// Not all filters for the pages will be checked, as many of them are identical between pages.
34+
// Environments is not checked at all because it has no filter implementations not allready covered by other pages
3435
const runSelectionFiltersChecks = {
3536
'tags': [{ count: 1, selector: '#tag-dropdown-option-FOOD' }, { count: 0, selector: '#tag-dropdown-option-CTP' }, { count: 1, selector: '#tag-filter-combination-operator-radio-button-or' }],
3637
'beam mode': [{ count: 1, selector: '#beam-mode-dropdown-option-NO\\ BEAM' }, { count: 2, selector: '#beam-mode-dropdown-option-UNSTABLE\\ BEAMS' }],
@@ -42,15 +43,18 @@ module.exports = () => {
4243
'magnets': [{ count: 1, selector: '#l3-dipole-current-dropdown-option-20003kA\\/0kA' }, { count: 3, selector: '#l3-dipole-current-dropdown-option-30003kA\\/0kA' }],
4344
};
4445

45-
it('should undo filters if the user presses go-back on the runs page', async () => {
46-
await goToPage(page, 'run-overview');
47-
48-
const startPopoverSelector = await getPopoverSelector(await page.$('.timeO2Start-filter .popover-trigger'));
46+
const logSelectionFiltersChecks = {
47+
'tags': [{ count: 1, selector: '#tag-dropdown-option-DPG' }, { count: 0, selector: '#tag-dropdown-option-FOOD' }, { count: 3, selector: '#tag-filter-combination-operator-radio-button-or' } ],
48+
};
4949

50-
const { fromDateSelector, fromTimeSelector } = getPeriodInputsSelectors(startPopoverSelector);
50+
const lhcFillsSelectionFiltersChecks = {
51+
'hasStableBeams': [{ count: 6, selector: '.switch > input' }],
52+
'beamTypes': [{ count: 1, selector: '#beam-types-checkbox-p-p' }, { count: 2, selector: '#beam-types-checkbox-p-Pb' }]
53+
};
5154

52-
for (const checks of Object.values(runSelectionFiltersChecks)) {
53-
await waitForTableTotalRowsCountToEqual(page, 109);
55+
const checkSelectionFilters = async (selectionFilterObject, baseRowCount) => {
56+
for (const [_key, checks] of Object.entries(selectionFilterObject)) {
57+
await waitForTableTotalRowsCountToEqual(page, baseRowCount);
5458

5559
for (const { count, selector } of checks) {
5660
await pressElement(page, selector, true);
@@ -62,8 +66,18 @@ module.exports = () => {
6266
await page.goBack();
6367
}
6468

65-
await waitForTableTotalRowsCountToEqual(page, 109);
69+
await waitForTableTotalRowsCountToEqual(page, baseRowCount);
6670
}
71+
};
72+
73+
it('should undo filters if the user presses go-back on the runs page', async () => {
74+
await goToPage(page, 'run-overview');
75+
const baseRowCount = 109;
76+
const startPopoverSelector = await getPopoverSelector(await page.$('.timeO2Start-filter .popover-trigger'));
77+
78+
const { fromDateSelector, fromTimeSelector } = getPeriodInputsSelectors(startPopoverSelector);
79+
80+
await checkSelectionFilters(runSelectionFiltersChecks, baseRowCount);
6781

6882
// Run duration
6983
await page.select('#duration-operator', '>');
@@ -74,7 +88,7 @@ module.exports = () => {
7488
await page.goBack();
7589
await waitForTableTotalRowsCountToEqual(page, 8);
7690
await page.goBack();
77-
await waitForTableTotalRowsCountToEqual(page, 109);
91+
await waitForTableTotalRowsCountToEqual(page, baseRowCount);
7892

7993
// EorReason filter
8094
await page.select('#eorCategories', 'DETECTORS');
@@ -88,7 +102,7 @@ module.exports = () => {
88102
await page.goBack();
89103
await waitForTableTotalRowsCountToEqual(page, 3);
90104
await page.goBack();
91-
await waitForTableTotalRowsCountToEqual(page, 109);
105+
await waitForTableTotalRowsCountToEqual(page, baseRowCount);
92106

93107
// O2 Start Filter:
94108
await fillInput(page, fromTimeSelector, '11:11', ['change']);
@@ -99,7 +113,44 @@ module.exports = () => {
99113
await page.goBack();
100114
await waitForTableTotalRowsCountToEqual(page, 1);
101115
await page.goBack();
102-
await waitForTableTotalRowsCountToEqual(page, 109);
116+
await waitForTableTotalRowsCountToEqual(page, baseRowCount);
117+
});
118+
119+
it('should undo filters if the user presses go-back on the LHC fills page', async () => {
120+
await goToPage(page, 'lhc-fill-overview');
121+
await checkSelectionFilters(lhcFillsSelectionFiltersChecks, 5)
122+
});
123+
124+
it('should undo filters if the user presses go-back on the logs page', async () => {
125+
await goToPage(page, 'log-overview');
126+
await waitForTableTotalRowsCountToEqual(page, 119);
127+
128+
// AuthorFilter
129+
await pressElement(page, '.author-filter .switch input', true);
130+
await waitForTableTotalRowsCountToEqual(page, 117);
131+
await fillInput(page, '#authorFilterText', '!Anonymous,John', ['change']);
132+
await waitForTableTotalRowsCountToEqual(page, 5);
133+
await page.goBack();
134+
await waitForTableTotalRowsCountToEqual(page, 117);
135+
await page.goBack();
136+
await waitForTableTotalRowsCountToEqual(page, 119);
137+
138+
await checkSelectionFilters(logSelectionFiltersChecks, 119);
139+
});
140+
141+
it('should undo filters if the user presses go-back on the lhc periods page', async () => {
142+
await goToPage(page, 'lhc-period-overview');
143+
await waitForTableTotalRowsCountToEqual(page, 3);
144+
145+
// Name
146+
await fillInput(page, '.name-filter input', 'LHC23f');
147+
await waitForTableTotalRowsCountToEqual(page, 1);
148+
await fillInput(page, '.name-filter input', 'bogus');
149+
await waitForTableTotalRowsCountToEqual(page, 0);
150+
await page.goBack();
151+
await waitForTableTotalRowsCountToEqual(page, 1);
152+
await page.goBack();
153+
await waitForTableTotalRowsCountToEqual(page, 3);
103154
});
104155

105156
after(async () => await defaultAfter(page, browser));

test/public/defaults.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -198,14 +198,15 @@ module.exports.waitForTableLength = waitForTableToLength;
198198
* Wait for the total number of elements to be the expected one
199199
*
200200
* @param {puppeteer.Page} page The puppeteer page where the table is located
201-
* @param {number} amount the expected amount of items
201+
* @param {number} amount the expected amount of items. If amount is 0 it is converted to undefined, as empty tables don't display a row count
202202
* @return {Promise<void>} resolves once the expected amount is present
203203
*/
204204
module.exports.waitForTableTotalRowsCountToEqual = async (page, amount) => {
205205
try {
206+
amount = amount === 0 ? undefined : `${amount}`;
206207
await page.waitForSelector('#totalRowsCount');
207208
await page.waitForFunction(
208-
(amount) => document.querySelector('#totalRowsCount').innerText === `${amount}`,
209+
(amount) => document.querySelector('#totalRowsCount')?.innerText === amount,
209210
{},
210211
amount,
211212
);

0 commit comments

Comments
 (0)