Skip to content

Commit 08c12a3

Browse files
committed
Add test scaffolding
1 parent 60154b1 commit 08c12a3

File tree

26 files changed

+232
-6
lines changed

26 files changed

+232
-6
lines changed

β€Žeslint.config.mjsβ€Ž

Lines changed: 1 addition & 1 deletion
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,
Lines changed: 102 additions & 0 deletions
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β€Ž

Lines changed: 51 additions & 0 deletions
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β€Ž renamed to β€Žtest/fixtures/default/build.config.tsβ€Ž

Lines changed: 1 addition & 1 deletion
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β€Ž renamed to β€Žtest/fixtures/default/build.preset.tsβ€Ž

Lines changed: 1 addition & 1 deletion
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.

0 commit comments

Comments
Β (0)