11
2- import fs from ' node:fs' ;
3- import path from ' node:path' ;
4- import { spawn } from ' node:child_process' ;
5- import { dirname } from ' dirname-filename-esm' ;
2+ import fs from ' node:fs/promises'
3+ import path from ' node:path'
4+ import { spawn } from ' node:child_process'
65
7- __dirname = dirname import .meta
6+ __dirname = new URL ( ' . ' , import .meta . url ). pathname
87dir = path .resolve __dirname , ' ../lib'
9- samples = fs .readdirSync dir
8+ samples = await fs .readdir dir
109
1110describe ' Samples' , ->
1211
@@ -15,13 +14,17 @@ describe 'Samples', ->
1514 return false unless / \. (js| ts)? $ / .test sample
1615 true
1716 .map (sample) ->
18- it " Sample #{ sample} " , (callback ) ->
19- ext = / \. (\w + )? $ / .exec (sample)[0 ]
20- [cmd , ... args ] = switch ext
21- when ' .js'
22- [' node' , path .resolve dir, sample]
23- when ' .ts'
24- [' node' , ' --loader' , ' ts-node/esm' , path .resolve dir, sample]
25- spawn (cmd, args)
26- .on ' close' , (code ) -> callback (code isnt 0 and new Error ' Failure' )
27- .stdout .on ' data' , (-> )
17+
18+ it " Sample #{ sample} " , () ->
19+ data = await fs .readFile path .resolve (dir, sample), ' utf8'
20+ return if / ^ ["|'] skip test["|'] / .test data
21+ new Promise (resolve , reject ) ->
22+ ext = / \. (\w + )? $ / .exec (sample)[0 ]
23+ [cmd , ... args ] = switch ext
24+ when ' .js'
25+ [' node' , path .resolve dir, sample]
26+ when ' .ts'
27+ [' node' , ' --loader' , ' ts-node/esm' , path .resolve dir, sample]
28+ spawn (cmd, args)
29+ .on ' close' , (code ) -> if code is 0 then resolve () else reject (new Error ' Failure' )
30+ .stdout .on ' data' , (-> )
0 commit comments