@@ -115,5 +115,91 @@ describe("stats", () => {
115115 } , false ] ) ;
116116 assert . equal ( logger . log . mock . calls [ 2 ] , undefined ) ;
117117 } ) ;
118+
119+ test ( "should filter API calls when min parameter is provided" , async ( t ) => {
120+ const scanResult = JSON . parse ( await readFile ( path . join ( import . meta. dirname , ".." , "fixtures" , "result-test3.json" ) , "utf8" ) ) ;
121+
122+ async function getScanResult ( ) {
123+ return Promise . resolve ( scanResult ) ;
124+ }
125+
126+ const logger = {
127+ logScannerStat : t . mock . fn ( ) ,
128+ logScannerError : t . mock . fn ( ) ,
129+ log : t . mock . fn ( ) ,
130+ logError : t . mock . fn ( )
131+ } ;
132+
133+ await main ( {
134+ getScanResult,
135+ logger,
136+ min : 50
137+ } ) ;
138+
139+ assert . deepEqual ( logger . log . mock . calls [ 0 ] . arguments , [ "cli.commands.stats.elapsed" , "771ms" ] ) ;
140+ assert . deepEqual ( logger . log . mock . calls [ 1 ] . arguments , [ "cli.commands.stats.stats" , 3 ] ) ;
141+ assert . deepEqual ( logger . log . mock . calls [ 2 ] . arguments , [ "cli.commands.stats.statsCeiling" , "50ms" , 2 ] ) ;
142+ assert . deepEqual ( logger . logScannerStat . mock . calls . length , 2 ) ;
143+ assert . deepEqual ( logger . logScannerStat . mock . calls [ 0 ] . arguments , [ {
144+ name : "pacote.extract react@19.2.4" ,
145+ startedAt : 1774601089529 ,
146+ executionTime : 83
147+ } , false ] ) ;
148+ assert . deepEqual ( logger . logScannerStat . mock . calls [ 1 ] . arguments , [ {
149+ name : "tarball.scanDirOrArchive react@19.2.4" ,
150+ startedAt : 1774601089612 ,
151+ executionTime : 247
152+ } , false ] ) ;
153+ } ) ;
154+
155+ test ( "should not disply the ceiling log if api calls count and api calls count above min are the same" , async ( t ) => {
156+ const scanResult = JSON . parse ( await readFile ( path . join ( import . meta. dirname , ".." , "fixtures" , "result-test3.json" ) , "utf8" ) ) ;
157+
158+ async function getScanResult ( ) {
159+ return Promise . resolve ( scanResult ) ;
160+ }
161+
162+ const logger = {
163+ logScannerStat : t . mock . fn ( ) ,
164+ logScannerError : t . mock . fn ( ) ,
165+ log : t . mock . fn ( ) ,
166+ logError : t . mock . fn ( )
167+ } ;
168+
169+ await main ( {
170+ getScanResult,
171+ logger,
172+ min : 10
173+ } ) ;
174+
175+ assert . deepEqual ( logger . log . mock . calls [ 0 ] . arguments , [ "cli.commands.stats.elapsed" , "771ms" ] ) ;
176+ assert . deepEqual ( logger . log . mock . calls [ 1 ] . arguments , [ "cli.commands.stats.stats" , 3 ] ) ;
177+ assert . deepEqual ( logger . log . mock . calls [ 2 ] . arguments , [ "cli.commands.stats.errors" , 2 ] ) ;
178+ } ) ;
179+
180+ test ( "should log error when min parameter is not a number" , async ( t ) => {
181+ const scanResult = JSON . parse ( await readFile ( path . join ( import . meta. dirname , ".." , "fixtures" , "result-test3.json" ) , "utf8" ) ) ;
182+
183+ async function getScanResult ( ) {
184+ return Promise . resolve ( scanResult ) ;
185+ }
186+
187+ const logger = {
188+ logScannerStat : t . mock . fn ( ) ,
189+ logScannerError : t . mock . fn ( ) ,
190+ log : t . mock . fn ( ) ,
191+ logError : t . mock . fn ( )
192+ } ;
193+
194+ await main ( {
195+ getScanResult,
196+ logger,
197+ min : "not-a-number"
198+ } ) ;
199+
200+ assert . deepEqual ( logger . logError . mock . calls [ 0 ] . arguments , [ "cli.commands.stats.minNotANumber" ] ) ;
201+ assert . strictEqual ( logger . logScannerStat . mock . callCount ( ) , 0 ) ;
202+ assert . strictEqual ( logger . log . mock . callCount ( ) , 0 ) ;
203+ } ) ;
118204} ) ;
119205
0 commit comments