@@ -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
2225module . 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