Skip to content

Commit a978e9d

Browse files
committed
Move tests to Node.js built-in test runner
1 parent 4079884 commit a978e9d

File tree

8 files changed

+32
-90
lines changed

8 files changed

+32
-90
lines changed

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"license": "MIT",
1515
"repository": "postcss/sugarss",
1616
"scripts": {
17-
"unit": "uvu . '\\.test\\.js$'",
17+
"unit": "node --test test/*.test.js",
1818
"test:coverage": "c8 pnpm unit",
1919
"test:lint": "eslint .",
2020
"test": "pnpm run /^test:/"
@@ -51,8 +51,7 @@
5151
"clean-publish": "^5.1.0",
5252
"eslint": "^9.14.0",
5353
"postcss": "^8.4.49",
54-
"postcss-parser-tests": "^8.8.0",
55-
"uvu": "^0.5.6"
54+
"postcss-parser-tests": "^8.8.0"
5655
},
5756
"prettier": {
5857
"arrowParens": "avoid",

pnpm-lock.yaml

Lines changed: 0 additions & 47 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

test/liner.test.js

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
let { test } = require('uvu')
2-
let { equal } = require('uvu/assert')
1+
let { deepStrictEqual } = require('node:assert')
2+
let { test } = require('node:test')
33

44
let liner = require('../liner')
55

@@ -9,7 +9,7 @@ test('packs tokens by lines', () => {
99
['newline', '\n'],
1010
['word', 'b']
1111
]
12-
equal(liner(tokens), [
12+
deepStrictEqual(liner(tokens), [
1313
[
1414
['word', 'a'],
1515
['newline', '\n']
@@ -24,13 +24,11 @@ test('ignores newline inside brackets', () => {
2424
['newline', '\n'],
2525
[')', ')']
2626
]
27-
equal(liner(tokens), [
27+
deepStrictEqual(liner(tokens), [
2828
[
2929
['(', '('],
3030
['newline', '\n'],
3131
[')', ')']
3232
]
3333
])
3434
})
35-
36-
test.run()

test/parse.test.js

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1+
let { deepStrictEqual, equal, throws } = require('node:assert')
12
let { readdirSync, readFileSync } = require('node:fs')
23
let { extname, join } = require('node:path')
4+
let { test } = require('node:test')
35
let { jsonify } = require('postcss-parser-tests')
4-
let { test } = require('uvu')
5-
let { equal, throws } = require('uvu/assert')
66

77
let parse = require('../parse')
88

@@ -14,55 +14,55 @@ test('detects indent', () => {
1414
test('throws on first indent', () => {
1515
throws(() => {
1616
parse(' @charset "UTF-8"')
17-
}, '<css input>:1:1: First line should not have indent')
17+
}, /<css input>:1:1: First line should not have indent/)
1818
})
1919

2020
test('throws on too big indent', () => {
2121
throws(() => {
2222
parse('@supports\n @media\n // test')
23-
}, '<css input>:3:1: Expected 4 indent, but get 6')
23+
}, /<css input>:3:1: Expected 4 indent, but get 6/)
2424
})
2525

2626
test('throws on wrong indent step', () => {
2727
throws(() => {
2828
parse('@supports\n @media\n @media')
29-
}, '<css input>:3:1: Expected 0 or 2 indent, but get 1')
29+
}, /<css input>:3:1: Expected 0 or 2 indent, but get 1/)
3030
})
3131

3232
test('throws on decl without property', () => {
3333
throws(() => {
3434
parse(': black')
35-
}, '<css input>:1:1: Declaration without name')
35+
}, /<css input>:1:1: Declaration without name/)
3636
})
3737

3838
test('throws on space between property', () => {
3939
throws(() => {
4040
parse('one two: black')
41-
}, '<css input>:1:5: Unexpected separator in property')
41+
}, /<css input>:1:5: Unexpected separator in property/)
4242
})
4343

4444
test('throws on semicolon in declaration', () => {
4545
throws(() => {
4646
parse('a\n color: black;')
47-
}, '<css input>:2:15: Unnecessary semicolon')
47+
}, /<css input>:2:15: Unnecessary semicolon/)
4848
})
4949

5050
test('throws on semicolon in at-rule', () => {
5151
throws(() => {
5252
parse('@charset "UTF-8";')
53-
}, '<css input>:1:17: Unnecessary semicolon')
53+
}, /<css input>:1:17: Unnecessary semicolon/)
5454
})
5555

5656
test('throws on curly in rule', () => {
5757
throws(() => {
5858
parse('a {\n color: black')
59-
}, '<css input>:1:3: Unnecessary curly bracket')
59+
}, /<css input>:1:3: Unnecessary curly bracket/)
6060
})
6161

6262
test('throws on curly in at-rule', () => {
6363
throws(() => {
6464
parse('@media (screen) {\n color: black')
65-
}, '<css input>:1:17: Unnecessary curly bracket')
65+
}, /<css input>:1:17: Unnecessary curly bracket/)
6666
})
6767

6868
test('keeps trailing spaces', () => {
@@ -90,7 +90,7 @@ test('generates correct source maps on trailing spaces', () => {
9090
})
9191

9292
test('sets end position for root', () => {
93-
equal(parse('a\n b: 1\n').source.end, { column: 6, line: 2 })
93+
deepStrictEqual(parse('a\n b: 1\n').source.end, { column: 6, line: 2 })
9494
})
9595

9696
let tests = readdirSync(join(__dirname, 'cases')).filter(
@@ -114,8 +114,6 @@ for (let name of tests) {
114114
}
115115
})
116116
equal(result.css, css)
117-
equal(jsonify(root), JSON.parse(json.trim()))
117+
deepStrictEqual(jsonify(root), JSON.parse(json.trim()))
118118
})
119119
}
120-
121-
test.run()

test/preprocess.test.js

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
let { deepStrictEqual, throws } = require('node:assert')
2+
let { test } = require('node:test')
13
let { Input } = require('postcss')
2-
let { test } = require('uvu')
3-
let { equal, throws } = require('uvu/assert')
44

55
let preprocess = require('../preprocess')
66

77
function run(lines, result) {
8-
equal(preprocess(new Input(''), lines), result)
8+
deepStrictEqual(preprocess(new Input(''), lines), result)
99
}
1010

1111
let defaults = {
@@ -385,7 +385,7 @@ test('detects mixed tabs and spaces in indent', () => {
385385
['word', 'ab']
386386
]
387387
])
388-
}, '<css input>:1:2: Mixed tabs and spaces are not allowed')
388+
}, /<css input>:1:2: Mixed tabs and spaces are not allowed/)
389389
})
390390

391391
test('detects mixed tabs and spaces in indents', () => {
@@ -400,7 +400,7 @@ test('detects mixed tabs and spaces in indents', () => {
400400
['word', 'ab']
401401
]
402402
])
403-
}, '<css input>:2:1: Mixed tabs and spaces are not allowed')
403+
}, /<css input>:2:1: Mixed tabs and spaces are not allowed/)
404404
})
405405

406406
test('shows correct error position', () => {
@@ -421,7 +421,5 @@ test('shows correct error position', () => {
421421
['newline', '\n', 4]
422422
]
423423
])
424-
}, '<css input>:4:2: Mixed tabs and spaces are not allowed')
424+
}, /<css input>:4:2: Mixed tabs and spaces are not allowed/)
425425
})
426-
427-
test.run()

test/stringify.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
let { equal } = require('node:assert')
12
let { readdirSync, readFileSync } = require('node:fs')
23
let { extname, join } = require('node:path')
3-
let { test } = require('uvu')
4-
let { equal } = require('uvu/assert')
4+
let { test } = require('node:test')
55

66
let parse = require('../parse')
77
let stringify = require('../stringify')
@@ -32,5 +32,3 @@ for (let name of tests) {
3232
run(read(name))
3333
})
3434
}
35-
36-
test.run()

test/sugarss.test.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
let { test } = require('uvu')
2-
let { equal } = require('uvu/assert')
1+
let { equal } = require('node:assert')
2+
let { test } = require('node:test')
33

44
let sugarss = require('../')
55

@@ -10,5 +10,3 @@ test('has parse()', () => {
1010
test('has stringify()', () => {
1111
equal(typeof sugarss.stringify, 'function')
1212
})
13-
14-
test.run()

test/tokenize.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1+
let { deepStrictEqual } = require('node:assert')
2+
let { test } = require('node:test')
13
let { Input } = require('postcss')
2-
let { test } = require('uvu')
3-
let { equal } = require('uvu/assert')
44

55
let tokenize = require('../tokenize')
66

77
function run(css, tokens) {
8-
equal(tokenize(new Input(css)), tokens)
8+
deepStrictEqual(tokenize(new Input(css)), tokens)
99
}
1010

1111
test('tokenizes inine comments', () => {

0 commit comments

Comments
 (0)