@@ -7,24 +7,47 @@ import validateWorker from '../../src/api/validate-worker';
77
88const logger = createMockLogger ( ) ;
99
10+ test . afterEach ( ( ) => {
11+ logger . _reset ( ) ;
12+ } ) ;
13+
1014test ( 'validate should not throw if the worker path is valid' , async ( t ) => {
1115 const workerPath = path . resolve ( 'dist/test/worker-functions.js' ) ;
1216 const api = initWorkers ( workerPath , { } , logger ) ;
13- await t . notThrowsAsync ( ( ) => validateWorker ( api as any , 500 ) ) ;
17+
18+ await t . notThrowsAsync ( ( ) => validateWorker ( api as any , logger ) ) ;
1419} ) ;
1520
1621test ( 'validate should throw if the worker path is invalid' , async ( t ) => {
1722 const workerPath = 'a/b/c.js' ;
1823 const api = initWorkers ( workerPath , { } , logger ) ;
19- await t . throwsAsync ( ( ) => validateWorker ( api as any , 500 ) , {
20- message : 'Invalid worker path' ,
24+
25+ await t . throwsAsync ( ( ) => validateWorker ( api as any , logger ) , {
26+ name : 'WorkerValidationError' ,
2127 } ) ;
2228} ) ;
2329
2430test ( 'validate should throw if the worker does not respond to a handshake' , async ( t ) => {
2531 const workerPath = path . resolve ( 'src/test/bad-worker.js' ) ;
2632 const api = initWorkers ( workerPath , { } , logger ) ;
27- await t . throwsAsync ( ( ) => validateWorker ( api as any , 500 ) , {
28- message : 'Invalid worker path' ,
33+ const opts = { timeout : 100 } ;
34+
35+ await t . throwsAsync ( ( ) => validateWorker ( api as any , logger , opts ) , {
36+ name : 'WorkerValidationError' ,
37+ } ) ;
38+ } ) ;
39+
40+ test ( 'validate should retry with a backoff' , async ( t ) => {
41+ const workerPath = path . resolve ( 'src/test/bad-worker.js' ) ;
42+ const api = initWorkers ( workerPath , { } , logger ) ;
43+ const opts = { timeout : 10 , retries : 3 } ;
44+
45+ await t . throwsAsync ( ( ) => validateWorker ( api as any , logger , opts ) , {
46+ name : 'WorkerValidationError' ,
47+ } ) ;
48+
49+ const warnings = logger . _history . filter ( ( [ level , _icon , message ] ) => {
50+ return level === 'warn' && message . match ( / w i l l r e t r y / ) ;
2951 } ) ;
52+ t . is ( warnings . length , 2 ) ;
3053} ) ;
0 commit comments