Skip to content

Commit

Permalink
Add test scaffolding
Browse files Browse the repository at this point in the history
  • Loading branch information
drwpow committed Feb 8, 2025
1 parent 60154b1 commit 3525d07
Show file tree
Hide file tree
Showing 26 changed files with 229 additions and 5 deletions.
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import unjs from "eslint-config-unjs";
export default unjs({
ignores: [
".git",
"test/fixture/dist"
"test/fixtures/**/dist"
],
rules: {
"unicorn/no-null": 0,
Expand Down
102 changes: 102 additions & 0 deletions test/__snapshots__/build.test.ts.snap
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html

exports[`Build fixtures > declaration (mkdist) > a.d.ts 1`] = `
"export declare function foo(): number;
"
`;

exports[`Build fixtures > declaration (mkdist) > a.mjs 1`] = `
"export function foo() {
return 42;
}
"
`;

exports[`Build fixtures > declaration (mkdist) > index.d.ts 1`] = `
"export { foo } from "./a.js";
"
`;

exports[`Build fixtures > declaration (mkdist) > index.mjs 1`] = `
"export { foo } from "./a.js";
"
`;

exports[`Build fixtures > declaration (rollup) > index.cjs 1`] = `
"'use strict';
function foo() {
return 42;
}
exports.foo = foo;
"
`;

exports[`Build fixtures > declaration (rollup) > index.d.cts 1`] = `
"declare function foo(): number;
export { foo };
"
`;

exports[`Build fixtures > declaration (rollup) > index.d.mts 1`] = `
"declare function foo(): number;
export { foo };
"
`;

exports[`Build fixtures > declaration (rollup) > index.d.ts 1`] = `
"declare function foo(): number;
export { foo };
"
`;

exports[`Build fixtures > declaration (rollup) > index.mjs 1`] = `
"function foo() {
return 42;
}
export { foo };
"
`;

exports[`Build fixtures > sourcemap (mkdist) > a.mjs 1`] = `
"export function foo() {
return 42;
}
"
`;

exports[`Build fixtures > sourcemap (mkdist) > index.mjs 1`] = `
"export { foo } from "./a.js";
"
`;

exports[`Build fixtures > sourcemap (rollup) > index.cjs 1`] = `
"'use strict';
function foo() {
return 42;
}
exports.foo = foo;
//# sourceMappingURL=index.cjs.map
"
`;

exports[`Build fixtures > sourcemap (rollup) > index.cjs.map 1`] = `"{"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;;;;"}"`;

exports[`Build fixtures > sourcemap (rollup) > index.mjs 1`] = `
"function foo() {
return 42;
}
export { foo };
//# sourceMappingURL=index.mjs.map
"
`;

exports[`Build fixtures > sourcemap (rollup) > index.mjs.map 1`] = `"{"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;;;;"}"`;
51 changes: 51 additions & 0 deletions test/build.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
import { describe, it, expect } from "vitest";
import fs from "node:fs";
import path from "node:path";
import { fileURLToPath } from "node:url";
import { build } from "../src/index.js";

type BuildConfig = Parameters<typeof build>[2];

describe("Build fixtures", () => {
const tests: [string, BuildConfig & { dir: string }][] = [
[
"declaration (mkdist)",
{
dir: "fixtures/mkdist-declaration",
},
],
[
"sourcemap (mkdist)",
{
dir: "fixtures/mkdist-sourcemap",
},
],
[
"declaration (rollup)",
{
dir: "fixtures/rollup-declaration",
},
],
[
"sourcemap (rollup)",
{
dir: "fixtures/rollup-sourcemap",
},
],
];

it.each(tests)("%s", async (_, { dir, ...buildOptions }) => {
const cwd = new URL(dir.replace(/\/?$/, "/"), import.meta.url);
await build(fileURLToPath(cwd), false, buildOptions);
for (const file of fs.readdirSync(new URL("dist/", cwd), {
recursive: true,
withFileTypes: true,
})) {
if (file.isFile()) {
expect(
fs.readFileSync(path.join(file.parentPath, file.name), "utf8"),
).toMatchSnapshot(file.name);
}
}
});
});
File renamed without changes.
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { defineBuildConfig } from "../../src";
import { defineBuildConfig } from "../../../src";

export default defineBuildConfig([
// Auto preset
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { definePreset } from "../../src";
import { definePreset } from "../../../src";

export default definePreset({
declaration: "compatible",
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
12 changes: 12 additions & 0 deletions test/fixtures/mkdist-declaration/build.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineBuildConfig } from "../../../src/index.js";

export default defineBuildConfig({
entries: [
{
input: "./src/",
builder: "mkdist",
},
],
outDir: "./dist/",
declaration: true,
});
3 changes: 3 additions & 0 deletions test/fixtures/mkdist-declaration/src/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function foo(): number {
return 42;
}
1 change: 1 addition & 0 deletions test/fixtures/mkdist-declaration/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { foo } from "./a.js";
12 changes: 12 additions & 0 deletions test/fixtures/mkdist-sourcemap/build.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { defineBuildConfig } from "../../../src/index.js";

export default defineBuildConfig({
entries: [
{
input: "./src/",
builder: "mkdist",
},
],
outDir: "./dist/",
sourcemap: true,
});
3 changes: 3 additions & 0 deletions test/fixtures/mkdist-sourcemap/src/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function foo(): number {
return 42;
}
1 change: 1 addition & 0 deletions test/fixtures/mkdist-sourcemap/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { foo } from "./a.js";
15 changes: 15 additions & 0 deletions test/fixtures/rollup-declaration/build.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { defineBuildConfig } from "../../../src/index.js";

export default defineBuildConfig({
entries: [
{
input: "./src/index.ts",
builder: "rollup",
},
],
outDir: "./dist/",
declaration: true,
rollup: {
emitCJS: true,
},
});
3 changes: 3 additions & 0 deletions test/fixtures/rollup-declaration/src/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function foo(): number {
return 42;
}
1 change: 1 addition & 0 deletions test/fixtures/rollup-declaration/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { foo } from "./a.js";
15 changes: 15 additions & 0 deletions test/fixtures/rollup-sourcemap/build.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import { defineBuildConfig } from "../../../src/index.js";

export default defineBuildConfig({
entries: [
{
input: "./src/index.ts",
builder: "rollup",
},
],
outDir: "./dist/",
sourcemap: true,
rollup: {
emitCJS: true,
},
});
3 changes: 3 additions & 0 deletions test/fixtures/rollup-sourcemap/src/a.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function foo(): number {
return 42;
}
1 change: 1 addition & 0 deletions test/fixtures/rollup-sourcemap/src/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { foo } from "./a.js";
2 changes: 1 addition & 1 deletion test/validate.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ describe("validatePackage", () => {
".": { node: "./src/index.mts" },
},
},
join(fileURLToPath(import.meta.url), "../fixture"),
join(fileURLToPath(import.meta.url), "../fixtures/default"),
buildContext,
);

Expand Down
3 changes: 2 additions & 1 deletion tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@
"noImplicitOverride": true,
"noEmit": true
},
"include": ["src", "test"]
"include": ["src", "test"],
"exclude": ["test/fixtures/**/dist"]
}

0 comments on commit 3525d07

Please sign in to comment.