@@ -116,7 +116,7 @@ describe('Cron update value test suite', () => {
116116
117117 render ( < Cron value = { value } setValue = { setValue } /> )
118118
119- // Open minute dropdown
119+ // Clear cron value
120120 await waitFor ( ( ) => {
121121 user . click ( screen . getByText ( 'Clear' ) )
122122 } )
@@ -136,7 +136,7 @@ describe('Cron update value test suite', () => {
136136
137137 render ( < Cron value = { value } setValue = { setValue } clearButtonAction = 'empty' /> )
138138
139- // Open minute dropdown
139+ // Clear cron value
140140 await waitFor ( ( ) => {
141141 user . click ( screen . getByText ( 'Clear' ) )
142142 } )
@@ -156,7 +156,7 @@ describe('Cron update value test suite', () => {
156156
157157 render ( < Cron value = { value } setValue = { setValue } shortcuts = { true } /> )
158158
159- // Open minute dropdown
159+ // Clear cron value
160160 await waitFor ( ( ) => {
161161 user . click ( screen . getByText ( 'Clear' ) )
162162 } )
@@ -185,7 +185,7 @@ describe('Cron update value test suite', () => {
185185 />
186186 )
187187
188- // Open minute dropdown
188+ // Clear cron value
189189 await waitFor ( ( ) => {
190190 user . click ( screen . getByText ( 'Clear' ) )
191191 } )
@@ -218,7 +218,7 @@ describe('Cron update value test suite', () => {
218218 />
219219 )
220220
221- // Open minute dropdown
221+ // Clear cron value
222222 await waitFor ( ( ) => {
223223 user . click ( screen . getByText ( 'Clear' ) )
224224 } )
@@ -269,4 +269,69 @@ describe('Cron update value test suite', () => {
269269 // Check dropdowns values still the sane
270270 expect ( await screen . findByText ( '1,4' ) ) . toBeVisible ( )
271271 } )
272+
273+ it ( 'should check that week-days and minutes options are filtered with dropdownConfig' , async ( ) => {
274+ const user = userEvent . setup ( )
275+ const value = '4,6 * * * 1'
276+ const setValue = jest . fn ( )
277+
278+ render (
279+ < Cron
280+ value = { value }
281+ setValue = { setValue }
282+ dropdownsConfig = { {
283+ 'minutes' : {
284+ // Remove minute 59 and 58
285+ filterOption : ( { value } ) => Number ( value ) < 58 ,
286+ } ,
287+ 'week-days' : {
288+ // Remove sunday
289+ filterOption : ( { value } ) => Number ( value ) !== 0 ,
290+ } ,
291+ } }
292+ />
293+ )
294+
295+ // Open minutes dropdown
296+ await waitFor ( ( ) => {
297+ user . click ( screen . getByText ( '4,6' ) )
298+ } )
299+
300+ // Check minutes
301+ await waitFor ( ( ) => {
302+ for ( let i = 0 ; i < 60 ; i ++ ) {
303+ if ( i < 58 ) {
304+ expect ( screen . getByText ( i ) ) . toBeVisible ( )
305+ } else {
306+ expect ( screen . queryByText ( 58 ) ) . not . toBeInTheDocument ( )
307+ expect ( screen . queryByText ( 59 ) ) . not . toBeInTheDocument ( )
308+ }
309+ }
310+ } )
311+
312+ // Open week-days dropdown
313+ await waitFor ( ( ) => {
314+ user . click ( screen . getByText ( 'MON' ) )
315+ } )
316+
317+ // Check days of the week
318+ await waitFor ( ( ) => {
319+ const days = [
320+ 'Sunday' ,
321+ 'Monday' ,
322+ 'Tuesday' ,
323+ 'Wednesday' ,
324+ 'Thursday' ,
325+ 'Friday' ,
326+ 'Saturday' ,
327+ ]
328+ for ( let i = 0 ; i < 7 ; i ++ ) {
329+ if ( i === 0 ) {
330+ expect ( screen . queryByText ( days [ i ] ) ) . not . toBeInTheDocument ( )
331+ } else {
332+ expect ( screen . getByText ( days [ i ] ) ) . toBeVisible ( )
333+ }
334+ }
335+ } )
336+ } )
272337} )
0 commit comments