11import { Actor , ProxyConfiguration } from 'apify' ;
22import { UserClient } from 'apify-client' ;
3- import { Request , sleep } from 'crawlee' ;
3+ import { type Dictionary , Request , sleep } from 'crawlee' ;
44
55import { APIFY_ENV_VARS , LOCAL_APIFY_ENV_VARS } from '@apify/consts' ;
66
@@ -140,12 +140,12 @@ describe('ProxyConfiguration', () => {
140140 } ) ;
141141
142142 test ( 'should throw on invalid groups and countryCode args' , async ( ) => {
143- // @ts -expect-error invalid input
144143 expect (
144+ // @ts -expect-error invalid input
145145 ( ) => new ProxyConfiguration ( { groups : [ new Date ( ) ] } ) ,
146146 ) . toThrowError ( ) ;
147- // @ts -expect-error invalid input
148147 expect (
148+ // @ts -expect-error invalid input
149149 ( ) => new ProxyConfiguration ( { groups : [ { } , 'fff' , 'ccc' ] } ) ,
150150 ) . toThrowError ( ) ;
151151 expect (
@@ -154,13 +154,13 @@ describe('ProxyConfiguration', () => {
154154 expect (
155155 ( ) => new ProxyConfiguration ( { groups : [ 'ffff' , 'fff' , 'cc$c' ] } ) ,
156156 ) . toThrowError ( ) ;
157- // @ts -expect-error invalid input
158157 expect (
158+ // @ts -expect-error invalid input
159159 ( ) => new ProxyConfiguration ( { apifyProxyGroups : [ new Date ( ) ] } ) ,
160160 ) . toThrowError ( ) ;
161161
162- // @ts -expect-error invalid input
163162 expect (
163+ // @ts -expect-error invalid input
164164 ( ) => new ProxyConfiguration ( { countryCode : new Date ( ) } ) ,
165165 ) . toThrow ( ) ;
166166 expect ( ( ) => new ProxyConfiguration ( { countryCode : 'aa' } ) ) . toThrow ( ) ;
@@ -231,7 +231,7 @@ describe('ProxyConfiguration', () => {
231231 'http://proxy.com:6666' ,
232232 ] ;
233233 const newUrlFunction = ( ) => {
234- return customUrls . pop ( ) ;
234+ return customUrls . pop ( ) ?? null ;
235235 } ;
236236 const proxyConfiguration = new ProxyConfiguration ( {
237237 newUrlFunction,
@@ -248,14 +248,15 @@ describe('ProxyConfiguration', () => {
248248 'http://proxy.com:4444' ,
249249 ) ;
250250
251+ // TODO enable strictNullChecks in tests
251252 // through newProxyInfo()
252- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
253+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ? .url ) . toEqual (
253254 'http://proxy.com:3333' ,
254255 ) ;
255- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
256+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ? .url ) . toEqual (
256257 'http://proxy.com:2222' ,
257258 ) ;
258- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
259+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ? .url ) . toEqual (
259260 'http://proxy.com:1111' ,
260261 ) ;
261262 } ) ;
@@ -271,7 +272,7 @@ describe('ProxyConfiguration', () => {
271272 ] ;
272273 const newUrlFunction = async ( ) => {
273274 await sleep ( 5 ) ;
274- return customUrls . pop ( ) ;
275+ return customUrls . pop ( ) ?? null ;
275276 } ;
276277 const proxyConfiguration = new ProxyConfiguration ( {
277278 newUrlFunction,
@@ -289,13 +290,13 @@ describe('ProxyConfiguration', () => {
289290 ) ;
290291
291292 // through newProxyInfo()
292- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
293+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
293294 'http://proxy.com:3333' ,
294295 ) ;
295- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
296+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
296297 'http://proxy.com:2222' ,
297298 ) ;
298- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
299+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
299300 'http://proxy.com:1111' ,
300301 ) ;
301302 } ) ;
@@ -312,12 +313,12 @@ describe('ProxyConfiguration', () => {
312313
313314 // @ts -expect-error private property
314315 const { proxyUrls } = proxyConfiguration ;
315- expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls [ 0 ] ) ;
316- expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls [ 1 ] ) ;
317- expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls [ 2 ] ) ;
318- expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls [ 0 ] ) ;
319- expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls [ 1 ] ) ;
320- expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls [ 2 ] ) ;
316+ expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls ! [ 0 ] ) ;
317+ expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls ! [ 1 ] ) ;
318+ expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls ! [ 2 ] ) ;
319+ expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls ! [ 0 ] ) ;
320+ expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls ! [ 1 ] ) ;
321+ expect ( await proxyConfiguration . newUrl ( ) ) . toEqual ( proxyUrls ! [ 2 ] ) ;
321322 } ) ;
322323
323324 test ( 'newProxyInfo() should return correctly rotated URL' , async ( ) => {
@@ -331,23 +332,23 @@ describe('ProxyConfiguration', () => {
331332
332333 // @ts -expect-error TODO private property?
333334 const { proxyUrls } = proxyConfiguration ;
334- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
335- proxyUrls [ 0 ] ,
335+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
336+ proxyUrls ! [ 0 ] ,
336337 ) ;
337- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
338- proxyUrls [ 1 ] ,
338+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
339+ proxyUrls ! [ 1 ] ,
339340 ) ;
340- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
341- proxyUrls [ 2 ] ,
341+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
342+ proxyUrls ! [ 2 ] ,
342343 ) ;
343- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
344- proxyUrls [ 0 ] ,
344+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
345+ proxyUrls ! [ 0 ] ,
345346 ) ;
346- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
347- proxyUrls [ 1 ] ,
347+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
348+ proxyUrls ! [ 1 ] ,
348349 ) ;
349- expect ( ( await proxyConfiguration . newProxyInfo ( ) ) . url ) . toEqual (
350- proxyUrls [ 2 ] ,
350+ expect ( ( await proxyConfiguration . newProxyInfo ( ) ) ! . url ) . toEqual (
351+ proxyUrls ! [ 2 ] ,
351352 ) ;
352353 } ) ;
353354
@@ -372,38 +373,38 @@ describe('ProxyConfiguration', () => {
372373 const { proxyUrls } = proxyConfiguration ;
373374 // should use same proxy URL
374375 expect ( await proxyConfiguration . newUrl ( sessions [ 0 ] ) ) . toEqual (
375- proxyUrls [ 0 ] ,
376+ proxyUrls ! [ 0 ] ,
376377 ) ;
377378 expect ( await proxyConfiguration . newUrl ( sessions [ 0 ] ) ) . toEqual (
378- proxyUrls [ 0 ] ,
379+ proxyUrls ! [ 0 ] ,
379380 ) ;
380381 expect ( await proxyConfiguration . newUrl ( sessions [ 0 ] ) ) . toEqual (
381- proxyUrls [ 0 ] ,
382+ proxyUrls ! [ 0 ] ,
382383 ) ;
383384
384385 // should rotate different proxies
385386 expect ( await proxyConfiguration . newUrl ( sessions [ 1 ] ) ) . toEqual (
386- proxyUrls [ 1 ] ,
387+ proxyUrls ! [ 1 ] ,
387388 ) ;
388389 expect ( await proxyConfiguration . newUrl ( sessions [ 2 ] ) ) . toEqual (
389- proxyUrls [ 2 ] ,
390+ proxyUrls ! [ 2 ] ,
390391 ) ;
391392 expect ( await proxyConfiguration . newUrl ( sessions [ 3 ] ) ) . toEqual (
392- proxyUrls [ 0 ] ,
393+ proxyUrls ! [ 0 ] ,
393394 ) ;
394395 expect ( await proxyConfiguration . newUrl ( sessions [ 4 ] ) ) . toEqual (
395- proxyUrls [ 1 ] ,
396+ proxyUrls ! [ 1 ] ,
396397 ) ;
397398 expect ( await proxyConfiguration . newUrl ( sessions [ 5 ] ) ) . toEqual (
398- proxyUrls [ 2 ] ,
399+ proxyUrls ! [ 2 ] ,
399400 ) ;
400401
401402 // should remember already used session
402403 expect ( await proxyConfiguration . newUrl ( sessions [ 1 ] ) ) . toEqual (
403- proxyUrls [ 1 ] ,
404+ proxyUrls ! [ 1 ] ,
404405 ) ;
405406 expect ( await proxyConfiguration . newUrl ( sessions [ 3 ] ) ) . toEqual (
406- proxyUrls [ 0 ] ,
407+ proxyUrls ! [ 0 ] ,
407408 ) ;
408409 } ) ;
409410
@@ -510,13 +511,11 @@ describe('ProxyConfiguration', () => {
510511
511512 // through newProxyInfo()
512513 expect (
513- (
514- await proxyConfiguration . newProxyInfo ( 'abc' , {
515- request : new Request ( {
516- url : 'http://example.com' ,
517- } ) as any ,
518- } )
519- ) . url ,
514+ ( await proxyConfiguration . newProxyInfo ( 'abc' , {
515+ request : new Request ( {
516+ url : 'http://example.com' ,
517+ } ) as any ,
518+ } ) ) ! . url ,
520519 ) . toEqual ( 'http://proxy.com:1111' ) ;
521520 } ) ;
522521
@@ -594,7 +593,7 @@ describe('Actor.createProxyConfiguration()', () => {
594593
595594 test ( 'should work without password (with token)' , async ( ) => {
596595 process . env . APIFY_TOKEN = '123456789' ;
597- const opts = { ...basicOpts } ;
596+ const opts : Dictionary = { ...basicOpts } ;
598597 delete opts . password ;
599598
600599 const getUserSpy = vitest . spyOn ( UserClient . prototype , 'get' ) ;
@@ -743,20 +742,18 @@ describe('Actor.createProxyConfiguration()', () => {
743742
744743 // through newUrl()
745744 expect (
746- await proxyConfiguration . newUrl ( 'abc' , {
745+ await proxyConfiguration ! . newUrl ( 'abc' , {
747746 request : new Request ( { url : 'http://example.com' } ) as any ,
748747 } ) ,
749748 ) . toEqual ( 'http://proxy.com:1111' ) ;
750749
751750 // through newProxyInfo()
752751 expect (
753- (
754- await proxyConfiguration . newProxyInfo ( 'abc' , {
755- request : new Request ( {
756- url : 'http://example.com' ,
757- } ) as any ,
758- } )
759- ) . url ,
752+ ( await proxyConfiguration ! . newProxyInfo ( 'abc' , {
753+ request : new Request ( {
754+ url : 'http://example.com' ,
755+ } ) as any ,
756+ } ) ) ! . url ,
760757 ) . toEqual ( 'http://proxy.com:1111' ) ;
761758 } ) ;
762759
@@ -784,7 +781,7 @@ describe('Actor.createProxyConfiguration()', () => {
784781 } ) ;
785782
786783 // eslint-disable-next-line dot-notation
787- expect ( proxyConfiguration [ 'tieredProxyUrls' ] ) . toEqual ( [
784+ expect ( proxyConfiguration ! [ 'tieredProxyUrls' ] ) . toEqual ( [
788785 [
789786 'http://groups-GROUP1,country-CZ:password@proxy.apify.com:8000' ,
790787 ] ,
0 commit comments