@@ -29,10 +29,11 @@ describe('selectPicks', () => {
2929 }
3030 const picks = selectPicks ( candidates )
3131
32- expect ( picks [ 0 ] ! . letterIndex ) . toBe ( 'next' . indexOf ( 'n' ) )
33- expect ( picks [ 1 ] ! . letterIndex ) . toBe ( 'webpack' . indexOf ( 'p' ) )
34- expect ( picks [ 2 ] ! . letterIndex ) . toBe ( 'commander' . indexOf ( 'm' ) )
35- expect ( picks [ 3 ] ! . letterIndex ) . toBe ( 'luxon' . indexOf ( 'x' ) )
32+ expect ( picks ) . toHaveLength ( 4 )
33+ expect ( picks [ 0 ] ?. letterIndex ) . toBe ( 'next' . indexOf ( 'n' ) )
34+ expect ( picks [ 1 ] ?. letterIndex ) . toBe ( 'webpack' . indexOf ( 'p' ) )
35+ expect ( picks [ 2 ] ?. letterIndex ) . toBe ( 'commander' . indexOf ( 'm' ) )
36+ expect ( picks [ 3 ] ?. letterIndex ) . toBe ( 'luxon' . indexOf ( 'x' ) )
3637 } )
3738
3839 it ( 'prefers liked candidates over non-liked' , ( ) => {
@@ -61,24 +62,41 @@ describe('selectPicks', () => {
6162 x : [ { name : 'luxon' , totalLikes : 0 } ] ,
6263 }
6364 const picks = selectPicks ( candidates )
64- expect ( picks [ 0 ] ! . name ) . toBe ( 'nodemon' )
65- expect ( picks [ 1 ] ! . name ) . toBe ( 'prettier' )
66- expect ( picks [ 2 ] ! . name ) . toBe ( 'mocha' )
67- expect ( picks [ 3 ] ! . name ) . toBe ( 'luxon' )
65+ expect ( picks ) . toHaveLength ( 4 )
66+ expect ( picks [ 0 ] ?. name ) . toBe ( 'nodemon' )
67+ expect ( picks [ 1 ] ?. name ) . toBe ( 'prettier' )
68+ expect ( picks [ 2 ] ?. name ) . toBe ( 'mocha' )
69+ expect ( picks [ 3 ] ?. name ) . toBe ( 'luxon' )
6870 } )
6971
70- it ( 'falls back to hardcoded when no candidates at all' , ( ) => {
72+ it ( 'falls back to hardcoded fallbacks when no candidates at all' , ( ) => {
7173 const candidates : Record < NpmxLetter , PickCandidate [ ] > = {
7274 n : [ ] ,
7375 p : [ ] ,
7476 m : [ ] ,
7577 x : [ ] ,
7678 }
7779 const picks = selectPicks ( candidates )
78- expect ( picks [ 0 ] ! . name ) . toBe ( FALLBACKS . n )
79- expect ( picks [ 1 ] ! . name ) . toBe ( FALLBACKS . p )
80- expect ( picks [ 2 ] ! . name ) . toBe ( FALLBACKS . m )
81- expect ( picks [ 3 ] ! . name ) . toBe ( FALLBACKS . x )
80+ expect ( picks ) . toHaveLength ( 4 )
81+ expect ( picks [ 0 ] ?. name ) . toBe ( FALLBACKS . n )
82+ expect ( picks [ 1 ] ?. name ) . toBe ( FALLBACKS . p )
83+ expect ( picks [ 2 ] ?. name ) . toBe ( FALLBACKS . m )
84+ expect ( picks [ 3 ] ?. name ) . toBe ( FALLBACKS . x )
85+ } )
86+
87+ it ( 'falls back to hardcoded fallbacks when the request to Algolia fails' , ( ) => {
88+ const candidates : Record < NpmxLetter , PickCandidate [ ] > = {
89+ n : [ ] ,
90+ p : [ ] ,
91+ m : [ ] ,
92+ x : [ ] ,
93+ }
94+ const picks = selectPicks ( candidates )
95+ expect ( picks ) . toHaveLength ( 4 )
96+ expect ( picks [ 0 ] ?. name ) . toBe ( FALLBACKS . n )
97+ expect ( picks [ 1 ] ?. name ) . toBe ( FALLBACKS . p )
98+ expect ( picks [ 2 ] ?. name ) . toBe ( FALLBACKS . m )
99+ expect ( picks [ 3 ] ?. name ) . toBe ( FALLBACKS . x )
82100 } )
83101
84102 it ( 'does not duplicate packages across picks' , ( ) => {
0 commit comments