Skip to content

Commit d8e57fb

Browse files
committed
Add test scaffolding
1 parent 60154b1 commit d8e57fb

26 files changed

+229
-5
lines changed

eslint.config.mjs

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import unjs from "eslint-config-unjs";
44
export default unjs({
55
ignores: [
66
".git",
7-
"test/fixture/dist"
7+
"test/fixtures/**/dist"
88
],
99
rules: {
1010
"unicorn/no-null": 0,

test/__snapshots__/build.test.ts.snap

+102
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
2+
3+
exports[`Build fixtures > declaration (mkdist) 1`] = `
4+
"export declare function foo(): number;
5+
"
6+
`;
7+
8+
exports[`Build fixtures > declaration (mkdist) 2`] = `
9+
"export function foo() {
10+
return 42;
11+
}
12+
"
13+
`;
14+
15+
exports[`Build fixtures > declaration (mkdist) 3`] = `
16+
"export { foo } from "./a.js";
17+
"
18+
`;
19+
20+
exports[`Build fixtures > declaration (mkdist) 4`] = `
21+
"export { foo } from "./a.js";
22+
"
23+
`;
24+
25+
exports[`Build fixtures > declaration (rollup) 1`] = `
26+
"'use strict';
27+
28+
function foo() {
29+
return 42;
30+
}
31+
32+
exports.foo = foo;
33+
"
34+
`;
35+
36+
exports[`Build fixtures > declaration (rollup) 2`] = `
37+
"declare function foo(): number;
38+
39+
export { foo };
40+
"
41+
`;
42+
43+
exports[`Build fixtures > declaration (rollup) 3`] = `
44+
"declare function foo(): number;
45+
46+
export { foo };
47+
"
48+
`;
49+
50+
exports[`Build fixtures > declaration (rollup) 4`] = `
51+
"declare function foo(): number;
52+
53+
export { foo };
54+
"
55+
`;
56+
57+
exports[`Build fixtures > declaration (rollup) 5`] = `
58+
"function foo() {
59+
return 42;
60+
}
61+
62+
export { foo };
63+
"
64+
`;
65+
66+
exports[`Build fixtures > sourcemap (mkdist) 1`] = `
67+
"export function foo() {
68+
return 42;
69+
}
70+
"
71+
`;
72+
73+
exports[`Build fixtures > sourcemap (mkdist) 2`] = `
74+
"export { foo } from "./a.js";
75+
"
76+
`;
77+
78+
exports[`Build fixtures > sourcemap (rollup) 1`] = `
79+
"'use strict';
80+
81+
function foo() {
82+
return 42;
83+
}
84+
85+
exports.foo = foo;
86+
//# sourceMappingURL=index.cjs.map
87+
"
88+
`;
89+
90+
exports[`Build fixtures > sourcemap (rollup) 2`] = `"{"version":3,"file":"index.cjs","sources":["../src/a.ts"],"sourcesContent":["export function foo(): number {\\n return 42;\\n}\\n"],"names":[],"mappings":";;AAAO,SAAS,GAAc,GAAA;AAC5B,EAAO,OAAA,EAAA;AACT;;;;"}"`;
91+
92+
exports[`Build fixtures > sourcemap (rollup) 3`] = `
93+
"function foo() {
94+
return 42;
95+
}
96+
97+
export { foo };
98+
//# sourceMappingURL=index.mjs.map
99+
"
100+
`;
101+
102+
exports[`Build fixtures > sourcemap (rollup) 4`] = `"{"version":3,"file":"index.mjs","sources":["../src/a.ts"],"sourcesContent":["export function foo(): number {\\n return 42;\\n}\\n"],"names":[],"mappings":"AAAO,SAAS,GAAc,GAAA;AAC5B,EAAO,OAAA,EAAA;AACT;;;;"}"`;

test/build.test.ts

+51
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { describe, it, expect } from "vitest";
2+
import fs from "node:fs";
3+
import path from "node:path";
4+
import { fileURLToPath } from "node:url";
5+
import { build } from "../src/index.js";
6+
7+
type BuildConfig = Parameters<typeof build>[2];
8+
9+
describe("Build fixtures", () => {
10+
const tests: [string, BuildConfig & { dir: string }][] = [
11+
[
12+
"declaration (mkdist)",
13+
{
14+
dir: "fixtures/mkdist-declaration",
15+
},
16+
],
17+
[
18+
"sourcemap (mkdist)",
19+
{
20+
dir: "fixtures/mkdist-sourcemap",
21+
},
22+
],
23+
[
24+
"declaration (rollup)",
25+
{
26+
dir: "fixtures/rollup-declaration",
27+
},
28+
],
29+
[
30+
"sourcemap (rollup)",
31+
{
32+
dir: "fixtures/rollup-sourcemap",
33+
},
34+
],
35+
];
36+
37+
it.each(tests)("%s", async (_, { dir, ...buildOptions }) => {
38+
const cwd = new URL(dir.replace(/\/?$/, "/"), import.meta.url);
39+
await build(fileURLToPath(cwd), false, buildOptions);
40+
for (const file of fs.readdirSync(new URL("dist/", cwd), {
41+
recursive: true,
42+
withFileTypes: true,
43+
})) {
44+
if (file.isFile()) {
45+
expect(
46+
fs.readFileSync(path.join(file.parentPath, file.name), "utf8"),
47+
).toMatchSnapshot();
48+
}
49+
}
50+
});
51+
});
File renamed without changes.

test/fixture/build.config.ts test/fixtures/default/build.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { defineBuildConfig } from "../../src";
1+
import { defineBuildConfig } from "../../../src";
22

33
export default defineBuildConfig([
44
// Auto preset

test/fixture/build.preset.ts test/fixtures/default/build.preset.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { definePreset } from "../../src";
1+
import { definePreset } from "../../../src";
22

33
export default definePreset({
44
declaration: "compatible",
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { defineBuildConfig } from "../../../src/index.js";
2+
3+
export default defineBuildConfig({
4+
entries: [
5+
{
6+
input: "./src/",
7+
builder: "mkdist",
8+
},
9+
],
10+
outDir: "./dist/",
11+
declaration: true,
12+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function foo(): number {
2+
return 42;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { foo } from "./a.js";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { defineBuildConfig } from "../../../src/index.js";
2+
3+
export default defineBuildConfig({
4+
entries: [
5+
{
6+
input: "./src/",
7+
builder: "mkdist",
8+
},
9+
],
10+
outDir: "./dist/",
11+
sourcemap: true,
12+
});
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function foo(): number {
2+
return 42;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { foo } from "./a.js";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { defineBuildConfig } from "../../../src/index.js";
2+
3+
export default defineBuildConfig({
4+
entries: [
5+
{
6+
input: "./src/index.ts",
7+
builder: "rollup",
8+
},
9+
],
10+
outDir: "./dist/",
11+
declaration: true,
12+
rollup: {
13+
emitCJS: true,
14+
},
15+
});
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function foo(): number {
2+
return 42;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { foo } from "./a.js";
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { defineBuildConfig } from "../../../src/index.js";
2+
3+
export default defineBuildConfig({
4+
entries: [
5+
{
6+
input: "./src/index.ts",
7+
builder: "rollup",
8+
},
9+
],
10+
outDir: "./dist/",
11+
sourcemap: true,
12+
rollup: {
13+
emitCJS: true,
14+
},
15+
});
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export function foo(): number {
2+
return 42;
3+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export { foo } from "./a.js";

test/validate.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ describe("validatePackage", () => {
2323
".": { node: "./src/index.mts" },
2424
},
2525
},
26-
join(fileURLToPath(import.meta.url), "../fixture"),
26+
join(fileURLToPath(import.meta.url), "../fixtures/default"),
2727
buildContext,
2828
);
2929

tsconfig.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717
"noImplicitOverride": true,
1818
"noEmit": true
1919
},
20-
"include": ["src", "test"]
20+
"include": ["src", "test"],
21+
"exclude": ["test/fixtures/**/dist"]
2122
}

0 commit comments

Comments
 (0)