@@ -3,9 +3,12 @@ import { mockConfig, mockLogger } from '../mocks.js';
33
44// setup mocks
55mockLogger ( ) ;
6- const { getConfigValue } = mockConfig ( ) ;
6+ jest . unstable_mockModule ( 'src/validation/validatePuzzle.js' , ( ) => ( {
7+ getAllPuzzlesForYear : jest . fn ( ) ,
8+ } ) ) ;
79
810// import after mocks set up
11+ const { getAllPuzzlesForYear } = await import ( '../../src/validation/validatePuzzle.js' ) ;
912const { assertPuzzleHasLevel } = await import (
1013 '../../src/actions/assertPuzzleHasLevel.js'
1114) ;
@@ -15,26 +18,28 @@ describe('assertPuzzleHasLevel()', () => {
1518 jest . resetAllMocks ( ) ;
1619 } ) ;
1720
18- test ( 'returns true if not last day' , ( ) => {
19- const days = [ 1 , 2 , 3 , 4 , 5 ] ;
20- getConfigValue . mockReturnValue ( days ) ;
21- for ( let i = 0 ; i < days . length - 1 ; i ++ ) {
22- const result = assertPuzzleHasLevel ( { year : 2022 , day : days [ i ] , level : 1 } ) ;
21+ test ( 'returns true if puzzle has level' , ( ) => {
22+ const puzzles = [
23+ { year : 2022 , day : 1 , level : 1 } ,
24+ { year : 2022 , day : 1 , level : 2 } ,
25+ { year : 2022 , day : 1 , level : 3 } ,
26+ { year : 2022 , day : 2 , level : 1 } ,
27+ ] ;
28+ getAllPuzzlesForYear . mockReturnValue ( puzzles ) ;
29+ for ( const puzzle of puzzles ) {
30+ const result = assertPuzzleHasLevel ( puzzle ) ;
2331 expect ( result ) . toBe ( true ) ;
2432 }
2533 } ) ;
2634
27- test ( 'returns false if last day and level is two' , ( ) => {
28- const days = [ 1 , 2 , 3 , 4 , 5 ] ;
29- getConfigValue . mockReturnValue ( days ) ;
30- const result = assertPuzzleHasLevel ( { year : 2022 , day : days . at ( - 1 ) , level : 2 } ) ;
35+ test ( 'returns false if puzzle does not have level' , ( ) => {
36+ getAllPuzzlesForYear . mockReturnValue ( [
37+ { year : 2022 , day : 1 , level : 1 } ,
38+ { year : 2022 , day : 1 , level : 2 } ,
39+ { year : 2022 , day : 1 , level : 3 } ,
40+ { year : 2022 , day : 2 , level : 1 } ,
41+ ] ) ;
42+ const result = assertPuzzleHasLevel ( { year : 2022 , day : 1 , level : 4 } ) ;
3143 expect ( result ) . toBe ( false ) ;
3244 } ) ;
33-
34- test ( 'returns true if last day and level is one' , ( ) => {
35- const days = [ 1 , 2 , 3 , 4 , 5 ] ;
36- getConfigValue . mockReturnValue ( days ) ;
37- const result = assertPuzzleHasLevel ( { year : 2022 , day : days . at ( - 1 ) , level : 1 } ) ;
38- expect ( result ) . toBe ( true ) ;
39- } ) ;
4045} ) ;
0 commit comments