build: add turbo workspace manifests
This commit is contained in:
parent
4eadd21f71
commit
87261b5a3f
9 changed files with 261 additions and 54 deletions
37
apps/web/src/lib/workspace-boundary.test.ts
Normal file
37
apps/web/src/lib/workspace-boundary.test.ts
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
import { existsSync, readFileSync } from "node:fs";
|
||||
import { join } from "node:path";
|
||||
import { describe, expect, test } from "vitest";
|
||||
|
||||
const root = process.cwd();
|
||||
|
||||
describe("workspace boundaries", () => {
|
||||
test("declares the root as a turbo-managed bun workspace", () => {
|
||||
const packageJson = JSON.parse(
|
||||
readFileSync(join(root, "package.json"), "utf8"),
|
||||
) as {
|
||||
private?: boolean;
|
||||
scripts?: Record<string, string>;
|
||||
workspaces?: string[];
|
||||
};
|
||||
|
||||
expect(packageJson.private).toBe(true);
|
||||
expect(packageJson.workspaces).toEqual(["apps/*", "packages/*"]);
|
||||
expect(packageJson.scripts?.build).toBe("turbo build");
|
||||
expect(existsSync(join(root, "turbo.json"))).toBe(true);
|
||||
});
|
||||
|
||||
test("keeps the website app and reusable UI library as separate packages", () => {
|
||||
const webPackage = JSON.parse(
|
||||
readFileSync(join(root, "apps/web/package.json"), "utf8"),
|
||||
) as { dependencies?: Record<string, string>; name?: string };
|
||||
const uiPackage = JSON.parse(
|
||||
readFileSync(join(root, "packages/ui/package.json"), "utf8"),
|
||||
) as { exports?: Record<string, unknown>; name?: string };
|
||||
|
||||
expect(webPackage.name).toBe("@dimensionlab/web");
|
||||
expect(webPackage.dependencies?.["@dimensionlab/ui"]).toBe("workspace:*");
|
||||
expect(uiPackage.name).toBe("@dimensionlab/ui");
|
||||
expect(uiPackage.exports).toHaveProperty(".");
|
||||
expect(uiPackage.exports).toHaveProperty("./styles.css");
|
||||
});
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue