@@ -18,6 +18,8 @@ describe('DenoWorker', () => {
1818 const pingScript = readFileSync ( pingFile , { encoding : 'utf-8' } ) ;
1919 const infiniteFile = path . resolve ( __dirname , './test/infinite.js' ) ;
2020 const infiniteScript = readFileSync ( infiniteFile , { encoding : 'utf-8' } ) ;
21+ const fetchFile = path . resolve ( __dirname , './test/fetch.js' ) ;
22+ const fetchScript = readFileSync ( fetchFile , { encoding : 'utf-8' } ) ;
2123 const failFile = path . resolve ( __dirname , './test/fail.js' ) ;
2224 const failScript = readFileSync ( failFile , { encoding : 'utf-8' } ) ;
2325 const envFile = path . resolve ( __dirname , './test/env.js' ) ;
@@ -127,6 +129,38 @@ describe('DenoWorker', () => {
127129 } ) ;
128130 } ) ;
129131
132+ it ( 'should be able to specify network addresses to block' , async ( ) => {
133+ const host = `example.com` ;
134+
135+ worker = new DenoWorker ( fetchScript , {
136+ permissions : {
137+ allowNet : true ,
138+ denyNet : [ host ] ,
139+ } ,
140+ } ) ;
141+
142+ let ret : any ;
143+ let resolve : any ;
144+ let promise = new Promise ( ( res , rej ) => {
145+ resolve = res ;
146+ } ) ;
147+ worker . onmessage = ( e ) => {
148+ ret = e . data ;
149+ resolve ( ) ;
150+ } ;
151+
152+ worker . postMessage ( {
153+ type : 'fetch' ,
154+ url : `https://${ host } ` ,
155+ } ) ;
156+
157+ await promise ;
158+
159+ expect ( ret ) . toMatchObject ( {
160+ type : 'error' ,
161+ } ) ;
162+ } ) ;
163+
130164 it ( 'should call onexit when the script fails' , async ( ) => {
131165 worker = new DenoWorker ( failScript ) ;
132166
0 commit comments