Skip to content

Commit 7d4961d

Browse files
committed
test: skip test ability
1 parent a55ee1f commit 7d4961d

File tree

10 files changed

+213
-132
lines changed

10 files changed

+213
-132
lines changed

demo/cjs/test/samples.coffee

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11

2-
fs = require 'fs'
3-
path = require 'path'
4-
{ exec } = require 'child_process'
2+
fs = require 'node:fs'
3+
path = require 'node:path'
4+
{ spawn } = require 'node:child_process'
55

66
dir = path.resolve __dirname, '../lib'
77
samples = fs.readdirSync dir
@@ -12,12 +12,16 @@ describe 'Samples', ->
1212
return false unless /\.(js|ts)?$/.test sample
1313
true
1414
.map (sample) ->
15-
it "Sample #{sample}", (callback) ->
16-
ext = /\.(\w+)?$/.exec(sample)[0]
17-
bin = switch ext
18-
when '.js'
19-
'node'
20-
when '.ts'
21-
'ts-node' # Also works with: `node --loader ts-node/esm`
22-
exec "#{bin} #{path.resolve dir, sample}", (err, stdout, stderr) ->
23-
callback err
15+
it "Sample #{sample}", () ->
16+
data = await fs.promises.readFile path.resolve(dir, sample), 'utf8'
17+
return if /^["|']skip test["|']/.test data
18+
new Promise (resolve, reject) ->
19+
ext = /\.(\w+)?$/.exec(sample)[0]
20+
[cmd, ...args] = switch ext
21+
when '.js'
22+
['node', path.resolve dir, sample]
23+
when '.ts'
24+
['ts-node', path.resolve dir, sample]
25+
spawn(cmd, args)
26+
.on 'close', (code) -> if code is 0 then resolve() else reject(new Error 'Failure')
27+
.stdout.on 'data', (->)

demo/esm/test/samples.coffee

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11

2-
import fs from 'fs'
3-
import path from 'path'
4-
import { exec } from 'child_process'
2+
import fs from 'node:fs/promises'
3+
import path from 'node:path'
4+
import { spawn } from 'node:child_process'
55

6-
import { fileURLToPath } from 'url'
7-
__dirname = path.dirname fileURLToPath import.meta.url
6+
__dirname = new URL( '.', import.meta.url).pathname
87
dir = path.resolve __dirname, '../lib'
9-
samples = fs.readdirSync dir
8+
samples = await fs.readdir dir
109

1110
describe 'Samples', ->
1211

@@ -15,12 +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-
bin = switch ext
21-
when '.js'
22-
'node'
23-
when '.ts'
24-
'node --loader ts-node/esm'
25-
exec "#{bin} #{path.resolve dir, sample}", (err, stdout, stderr) ->
26-
callback err
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', (->)

demo/issues-cjs/test/samples.coffee

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,16 @@ describe 'Samples', ->
1212
return false unless /\.(js|ts)?$/.test sample
1313
true
1414
.map (sample) ->
15-
it "Sample #{sample}", (callback) ->
16-
ext = /\.(\w+)?$/.exec(sample)[0]
17-
cmd = switch ext
18-
when '.js'
19-
'node'
20-
when '.ts'
21-
'ts-node' # Also works with: `node --loader ts-node/esm`
22-
spawn(cmd, [path.resolve dir, sample])
23-
.on 'close', (code) -> callback(code isnt 0 and new Error 'Failure')
24-
.stdout.on 'data', (->)
15+
it "Sample #{sample}", () ->
16+
data = await fs.promises.readFile path.resolve(dir, sample), 'utf8'
17+
return if /^["|']skip test["|']/.test data
18+
new Promise (resolve, reject) ->
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) -> if code is 0 then resolve() else reject(new Error 'Failure')
27+
.stdout.on 'data', (->)

demo/issues-esm/test/samples.coffee

Lines changed: 19 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
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
87
dir = path.resolve __dirname, '../lib'
9-
samples = fs.readdirSync dir
8+
samples = await fs.readdir dir
109

1110
describe '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', (->)
Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11

2-
import fs from 'fs'
3-
import path from 'path'
4-
import { exec } from 'child_process'
2+
import fs from 'node:fs/promises'
3+
import path from 'node:path'
4+
import { spawn } from 'node:child_process'
55

6-
import { fileURLToPath } from 'url'
7-
__dirname = path.dirname fileURLToPath import.meta.url
6+
__dirname = new URL( '.', import.meta.url).pathname
87
dir = path.resolve __dirname, '../lib'
9-
samples = fs.readdirSync dir
8+
samples = await fs.readdir dir
109

1110
describe 'Samples', ->
1211

@@ -15,12 +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-
bin = switch ext
21-
when '.js'
22-
'node'
23-
when '.ts'
24-
'node --loader ts-node/esm'
25-
exec "#{bin} #{path.resolve dir, sample}", (err, stdout, stderr) ->
26-
callback err
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', (->)
Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11

2-
import each from 'each'
3-
import fs from 'fs'
4-
import path from 'path'
5-
import { exec } from 'child_process'
2+
import fs from 'node:fs/promises'
3+
import path from 'node:path'
4+
import { spawn } from 'node:child_process'
65

7-
import { fileURLToPath } from 'url'
8-
__dirname = path.dirname fileURLToPath import.meta.url
6+
__dirname = new URL( '.', import.meta.url).pathname
97
dir = path.resolve __dirname, '../samples'
10-
samples = fs.readdirSync(dir).filter (sample) -> /\.js$/.test sample
8+
samples = await fs.readdir dir
119

1210
describe 'Samples', ->
13-
14-
each samples, (sample) ->
15-
it "Sample #{sample}", (callback) ->
16-
exec "node #{path.resolve dir, sample}", (err) ->
17-
callback err
11+
12+
samples
13+
.filter (sample) ->
14+
return false unless /\.(js|ts)?$/.test sample
15+
true
16+
.map (sample) ->
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', (->)
Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,31 @@
1+
import fs from 'node:fs/promises'
2+
import path from 'node:path'
3+
import { spawn } from 'node:child_process'
14

2-
import each from 'each'
3-
import fs from 'fs'
4-
import path from 'path'
5-
import { exec } from 'child_process'
6-
7-
import { fileURLToPath } from 'url'
8-
__dirname = path.dirname fileURLToPath import.meta.url
9-
dir = path.resolve __dirname, '../samples'
105
[_, major] = process.version.match(/(\d+)\.\d+\.\d+/)
11-
samples = fs.readdirSync(dir)
12-
.filter (sample) -> ! (major < 16 && sample is 'recipe.promises.js')
13-
.filter (sample) -> /\.js$/.test sample
6+
__dirname = new URL( '.', import.meta.url).pathname
7+
dir = path.resolve __dirname, '../samples'
8+
samples = await fs.readdir dir
149

1510
describe 'Samples', ->
16-
17-
each samples, (sample) ->
18-
it "Sample #{sample}", (callback) ->
19-
exec "node #{path.resolve dir, sample}", (err) ->
20-
callback err
11+
12+
samples
13+
.filter (sample) -> ! (major < 16 && sample is 'recipe.promises.js')
14+
.filter (sample) ->
15+
return false unless /\.(js|ts)?$/.test sample
16+
true
17+
.map (sample) ->
18+
19+
it "Sample #{sample}", () ->
20+
data = await fs.readFile path.resolve(dir, sample), 'utf8'
21+
return if /^["|']skip test["|']/.test data
22+
new Promise (resolve, reject) ->
23+
ext = /\.(\w+)?$/.exec(sample)[0]
24+
[cmd, ...args] = switch ext
25+
when '.js'
26+
['node', path.resolve dir, sample]
27+
when '.ts'
28+
['node', '--loader', 'ts-node/esm', path.resolve dir, sample]
29+
spawn(cmd, args)
30+
.on 'close', (code) -> if code is 0 then resolve() else reject(new Error 'Failure')
31+
.stdout.on 'data', (->)
Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11

2-
import each from 'each'
3-
import fs from 'fs'
4-
import path from 'path'
5-
import { exec } from 'child_process'
2+
import fs from 'node:fs/promises'
3+
import path from 'node:path'
4+
import { spawn } from 'node:child_process'
65

7-
import { fileURLToPath } from 'url'
8-
__dirname = path.dirname fileURLToPath import.meta.url
6+
__dirname = new URL( '.', import.meta.url).pathname
97
dir = path.resolve __dirname, '../samples'
10-
samples = fs.readdirSync(dir).filter (sample) -> /\.js$/.test sample
8+
samples = await fs.readdir dir
119

1210
describe 'Samples', ->
13-
14-
each samples, (sample) ->
15-
it "Sample #{sample}", (callback) ->
16-
exec "node #{path.resolve dir, sample}", (err) ->
17-
callback err
11+
12+
samples
13+
.filter (sample) ->
14+
return false unless /\.(js|ts)?$/.test sample
15+
true
16+
.map (sample) ->
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', (->)

packages/csv/test/samples.coffee

Lines changed: 25 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,30 @@
11

2-
import each from 'each'
3-
import fs from 'fs'
4-
import path from 'path'
5-
import { exec } from 'child_process'
2+
import fs from 'node:fs/promises'
3+
import path from 'node:path'
4+
import { spawn } from 'node:child_process'
65

7-
import { fileURLToPath } from 'url'
8-
__dirname = path.dirname fileURLToPath import.meta.url
6+
__dirname = new URL( '.', import.meta.url).pathname
97
dir = path.resolve __dirname, '../samples'
10-
samples = fs.readdirSync(dir).filter (sample) -> /\.js$/.test sample
8+
samples = await fs.readdir dir
119

1210
describe 'Samples', ->
13-
14-
each samples, (sample) ->
15-
it "Sample #{sample}", (callback) ->
16-
exec "node #{path.resolve dir, sample}", (err) ->
17-
callback err
11+
12+
samples
13+
.filter (sample) ->
14+
return false unless /\.(js|ts)?$/.test sample
15+
true
16+
.map (sample) ->
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

Comments
 (0)