Skip to content

Commit b422ff3

Browse files
author
NarrowsProjects
committed
test: extend filteringmodel tests
1 parent 0c42d0d commit b422ff3

1 file changed

Lines changed: 69 additions & 13 deletions

File tree

test/public/Filters/FilteringModel.test.js

Lines changed: 69 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ const {
1616
defaultAfter,
1717
goToPage,
1818
fillInput,
19-
waitForTableLength,
19+
pressElement,
20+
waitForTableTotalRowsCountToEqual,
21+
getPopoverSelector,
22+
getPeriodInputsSelectors,
2023
} = require('../defaults.js');
2124

2225
module.exports = () => {
@@ -26,24 +29,77 @@ module.exports = () => {
2629
before(async () => {
2730
[page, browser] = await defaultBefore();
2831
});
32+
33+
// Not all filters for the pages will be checked, as many of them are identical.
34+
const runSelectionFiltersChecks = {
35+
'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' }],
36+
'beam mode': [{ count: 1, selector: '#beam-mode-dropdown-option-NO\\ BEAM' }, { count: 2, selector: '#beam-mode-dropdown-option-UNSTABLE\\ BEAMS' }],
37+
'definitions': [{ count: 1, selector: '#run-definition-checkbox-TECHNICAL' }, { count: 3, selector: '#run-definition-checkbox-SYNTHETIC' }],
38+
'quality': [{ count: 1, selector: '#checkboxes-checkbox-none' }, { count: 3, selector: '#checkboxes-checkbox-bad' }],
39+
'detectors': [{ count: 3, selector: '#detector-filter-dropdown-option-ACO' }, { count: 0, selector: '#detector-filter-dropdown-option-FDD' }, { count: 3, selector: '#detector-filter-combination-operator-radio-button-or' }],
40+
'runTypes': [{ count: 4, selector: '#run-types-dropdown-option-14' }, { count: 5, selector: '#run-types-dropdown-option-2' }],
41+
'ddFLP': [{ count: 101, selector: '#ddFlpFilterRadioON' }, { count: 8, selector: '#ddFlpFilterRadioOFF' }],
42+
'magnets': [{ count: 1, selector: '#l3-dipole-current-dropdown-option-20003kA\\/0kA' }, { count: 3, selector: '#l3-dipole-current-dropdown-option-30003kA\\/0kA' }],
43+
};
2944

30-
it('should undo filters if the user presses go-back', async () => {
31-
const filterInputSelector = '.runNumbers-textFilter';
45+
it('should undo filters if the user presses go-back on the runs page', async () => {
3246
await goToPage(page, 'run-overview');
3347

34-
await waitForTableLength(page, 6);
35-
await fillInput(page, filterInputSelector, '109', ['change']);
36-
await waitForTableLength(page, 1);
37-
await fillInput(page, filterInputSelector, '109,108', ['change']);
38-
await waitForTableLength(page, 2);
39-
await fillInput(page, filterInputSelector, '109,108,107', ['change']);
40-
await waitForTableLength(page, 3);
48+
const startPopoverSelector = await getPopoverSelector(await page.$('.timeO2Start-filter .popover-trigger'));
49+
50+
const { fromDateSelector, fromTimeSelector } = getPeriodInputsSelectors(startPopoverSelector);
51+
52+
for (const checks of Object.values(runSelectionFiltersChecks)) {
53+
await waitForTableTotalRowsCountToEqual(page, 109);
54+
55+
for (const { count, selector } of checks) {
56+
await pressElement(page, selector, true);
57+
await waitForTableTotalRowsCountToEqual(page, count);
58+
}
59+
60+
for (const { count } of checks.reverse()) {
61+
await waitForTableTotalRowsCountToEqual(page, count);
62+
await page.goBack();
63+
}
64+
65+
await waitForTableTotalRowsCountToEqual(page, 109);
66+
}
67+
68+
// Run duration
69+
await page.select('#duration-operator', '>');
70+
await fillInput(page, '#duration-operand', 500, ['change']);
71+
await waitForTableTotalRowsCountToEqual(page, 8);
72+
await page.select('#duration-operator', '=');
73+
await waitForTableTotalRowsCountToEqual(page, 0);
4174
await page.goBack();
42-
await waitForTableLength(page, 2);
75+
await waitForTableTotalRowsCountToEqual(page, 8);
76+
await page.goBack();
77+
await waitForTableTotalRowsCountToEqual(page, 109);
78+
79+
// EorReason filter
80+
await page.select('#eorCategories', 'DETECTORS');
81+
await waitForTableTotalRowsCountToEqual(page, 3);
82+
await page.select('#eorTitles', 'CPV');
83+
await waitForTableTotalRowsCountToEqual(page, 2);
84+
await fillInput(page, '#eorDescription', 'some', ['change']);
85+
await waitForTableTotalRowsCountToEqual(page, 1);
86+
await page.goBack();
87+
await waitForTableTotalRowsCountToEqual(page, 2);
88+
await page.goBack();
89+
await waitForTableTotalRowsCountToEqual(page, 3);
90+
await page.goBack();
91+
await waitForTableTotalRowsCountToEqual(page, 109);
92+
93+
// O2 Start Filter:
94+
await fillInput(page, fromTimeSelector, '11:11', ['change']);
95+
await fillInput(page, fromDateSelector, '2021-02-03', ['change']);
96+
await waitForTableTotalRowsCountToEqual(page, 1);
97+
await fillInput(page, fromDateSelector, '2020-02-03', ['change']);
98+
await waitForTableTotalRowsCountToEqual(page, 2);
4399
await page.goBack();
44-
await waitForTableLength(page, 1);
100+
await waitForTableTotalRowsCountToEqual(page, 1);
45101
await page.goBack();
46-
await waitForTableLength(page, 6);
102+
await waitForTableTotalRowsCountToEqual(page, 109);
47103
});
48104

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

0 commit comments

Comments
 (0)