Skip to content

Commit 62cbea0

Browse files
committed
chore(repo): test migration to vitest. phase 4
1 parent 1cfa530 commit 62cbea0

44 files changed

Lines changed: 952 additions & 487 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

packages/commonjs/package.json

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,14 @@
2828
"ci:coverage": "nyc pnpm test && nyc report --reporter=text-lcov > coverage.lcov",
2929
"ci:lint": "pnpm build && pnpm lint",
3030
"ci:lint:commits": "commitlint --from=${CIRCLE_BRANCH} --to=${CIRCLE_SHA1}",
31-
"ci:test": "pnpm test -- --verbose && pnpm test:ts",
31+
"ci:test": "pnpm test -- --reporter=verbose",
3232
"prebuild": "del-cli dist",
3333
"prepare": "if [ ! -d 'dist' ]; then pnpm build; fi",
3434
"prepublishOnly": "pnpm build",
3535
"prerelease": "pnpm build",
3636
"pretest": "pnpm build",
3737
"release": "pnpm --workspace-root package:release $(pwd)",
38-
"test": "ava",
38+
"test": "vitest --config ../../.config/vitest.config.mts run",
3939
"test:ts": "tsc types/index.d.ts test/types.ts --noEmit"
4040
},
4141
"files": [
@@ -81,14 +81,5 @@
8181
"source-map-support": "^0.5.21",
8282
"typescript": "^4.8.3"
8383
},
84-
"types": "./types/index.d.ts",
85-
"ava": {
86-
"workerThreads": false,
87-
"files": [
88-
"!**/fixtures/**",
89-
"!**/helpers/**",
90-
"!**/recipes/**",
91-
"!**/types.ts"
92-
]
93-
}
84+
"types": "./types/index.d.ts"
9485
}

packages/commonjs/test/form.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@ const fs = require('fs');
44
const path = require('path');
55

66
const acorn = require('acorn');
7-
const test = require('ava');
87

98
const { commonjs } = require('./helpers/util.js');
109

10+
const { createAvaAssertions } = require('./helpers/ava-assertions.js');
11+
12+
const t = createAvaAssertions();
13+
1114
process.chdir(__dirname);
1215

1316
const transformContext = {
@@ -51,7 +54,7 @@ if (path.sep === '/') {
5154
inputEntries.push(['output', `fixtures/form/${dir}/input.js`]);
5255
}
5356

54-
(config.solo ? test.only : test)(dir, (t) =>
57+
(config.solo ? test.only : test)(dir, () =>
5558
Promise.all(
5659
inputEntries.map(async ([outputName, id]) => {
5760
const { buildStart, transform } = commonjs(config.options);

packages/commonjs/test/function.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,14 @@
22

33
const { readdirSync } = require('fs');
44

5-
const test = require('ava');
65
const { rollup } = require('rollup');
76

87
const { commonjs, getCodeMapFromBundle, runCodeSplitTest } = require('./helpers/util');
98

9+
const { createAvaAssertions } = require('./helpers/ava-assertions.js');
10+
11+
const t = createAvaAssertions();
12+
1013
process.chdir(__dirname);
1114

1215
readdirSync('./fixtures/function').forEach((dir) => {
@@ -22,7 +25,7 @@ readdirSync('./fixtures/function').forEach((dir) => {
2225
console.error(`Skipped test "${dir}"`);
2326
return;
2427
}
25-
(config.solo ? test.only : test)(dir, async (t) => {
28+
(config.solo ? test.only : test)(dir, async () => {
2629
const options = Object.assign(
2730
{
2831
input: `fixtures/function/${dir}/${config.input || 'main.js'}`
Lines changed: 149 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
const matchError = (error, expectation) => {
2+
if (!expectation) return;
3+
4+
if (expectation instanceof RegExp) {
5+
expect(error.message).toMatch(expectation);
6+
return;
7+
}
8+
9+
if (typeof expectation === 'string') {
10+
expect(error.message).toContain(expectation);
11+
return;
12+
}
13+
14+
if (typeof expectation === 'function') {
15+
expect(error).toBeInstanceOf(expectation);
16+
return;
17+
}
18+
19+
if (typeof expectation === 'object') {
20+
const { message, instanceOf, ...rest } = expectation;
21+
22+
if (instanceOf) {
23+
expect(error).toBeInstanceOf(instanceOf);
24+
}
25+
26+
if (message !== undefined) {
27+
if (message instanceof RegExp) {
28+
expect(error.message).toMatch(message);
29+
} else {
30+
expect(error.message).toBe(message);
31+
}
32+
}
33+
34+
if (Object.keys(rest).length > 0) {
35+
expect(error).toMatchObject(rest);
36+
}
37+
}
38+
};
39+
40+
const toPromise = (valueOrFactory) => {
41+
if (typeof valueOrFactory === 'function') {
42+
return valueOrFactory();
43+
}
44+
return valueOrFactory;
45+
};
46+
47+
const throwsAsync = async (valueOrFactory, expectation) => {
48+
try {
49+
await toPromise(valueOrFactory);
50+
} catch (error) {
51+
matchError(error, expectation);
52+
return error;
53+
}
54+
55+
throw new Error('Expected function to throw');
56+
};
57+
58+
const createAvaAssertions = () => {
59+
return {
60+
is(actual, expected, message) {
61+
expect(actual, message).toBe(expected);
62+
},
63+
64+
not(actual, expected, message) {
65+
expect(actual, message).not.toBe(expected);
66+
},
67+
68+
deepEqual(actual, expected, message) {
69+
expect(actual, message).toEqual(expected);
70+
},
71+
72+
notDeepEqual(actual, expected, message) {
73+
expect(actual, message).not.toEqual(expected);
74+
},
75+
76+
like(actual, expected, message) {
77+
expect(actual, message).toMatchObject(expected);
78+
},
79+
80+
true(value, message) {
81+
expect(value, message).toBe(true);
82+
},
83+
84+
false(value, message) {
85+
expect(value, message).toBe(false);
86+
},
87+
88+
truthy(value, message) {
89+
expect(value, message).toBeTruthy();
90+
},
91+
92+
falsy(value, message) {
93+
expect(value, message).toBeFalsy();
94+
},
95+
96+
regex(value, regex, message) {
97+
expect(value, message).toMatch(regex);
98+
},
99+
100+
assert(value, message) {
101+
expect(value, message).toBeTruthy();
102+
},
103+
104+
pass() {
105+
expect(true).toBe(true);
106+
},
107+
108+
fail(message) {
109+
throw new Error(message || 'Test failed');
110+
},
111+
112+
snapshot(value) {
113+
expect(value).toMatchSnapshot();
114+
},
115+
116+
plan(count) {
117+
expect.assertions(count);
118+
},
119+
120+
throws(valueOrFactory, expectation) {
121+
if (typeof valueOrFactory === 'function') {
122+
try {
123+
const result = valueOrFactory();
124+
if (result && typeof result.then === 'function') {
125+
return throwsAsync(result, expectation);
126+
}
127+
} catch (error) {
128+
matchError(error, expectation);
129+
return error;
130+
}
131+
throw new Error('Expected function to throw');
132+
}
133+
134+
return throwsAsync(valueOrFactory, expectation);
135+
},
136+
137+
throwsAsync(valueOrFactory, expectation) {
138+
return throwsAsync(valueOrFactory, expectation);
139+
},
140+
141+
async notThrowsAsync(valueOrFactory) {
142+
return toPromise(valueOrFactory);
143+
}
144+
};
145+
};
146+
147+
module.exports = {
148+
createAvaAssertions
149+
};
226 KB
Binary file not shown.
7.96 KB
Binary file not shown.

packages/commonjs/test/test-dynamic-require-root-outside-cwd.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
const path = require('path');
22

3-
const test = require('ava');
43
const { rollup } = require('rollup');
54

65
const { commonjs } = require('./helpers/util.js');
76

7+
const { createAvaAssertions } = require('./helpers/ava-assertions.js');
8+
9+
const t = createAvaAssertions();
10+
811
process.chdir(path.join(__dirname, 'fixtures/samples/dynamic-require-root-outside-cwd/cwd'));
912

10-
test('crawls dynamicRequireRoot outside cwd', async (t) => {
13+
test('crawls dynamicRequireRoot outside cwd', async () => {
1114
const build = await rollup({
1215
input: 'main.js',
1316
plugins: [

0 commit comments

Comments
 (0)