forked from farhoodlabs/paperclip
9ddf960312
Co-Authored-By: Paperclip <noreply@paperclip.ing>
43 lines
2.4 KiB
TypeScript
43 lines
2.4 KiB
TypeScript
import fs from "node:fs";
|
|
import os from "node:os";
|
|
import path from "node:path";
|
|
import { describe, expect, it } from "vitest";
|
|
import { resolveServerDevWatchIgnorePaths } from "../dev-watch-ignore.js";
|
|
|
|
describe("resolveServerDevWatchIgnorePaths", () => {
|
|
it("includes both the worktree UI paths and their real shared targets", () => {
|
|
const tempRoot = fs.mkdtempSync(path.join(os.tmpdir(), "paperclip-dev-watch-"));
|
|
const sharedUiRoot = path.join(tempRoot, "shared-ui");
|
|
const worktreeRoot = path.join(tempRoot, "repo", ".paperclip", "worktrees", "PAP-884");
|
|
const serverRoot = path.join(worktreeRoot, "server");
|
|
const worktreeUiRoot = path.join(worktreeRoot, "ui");
|
|
|
|
fs.mkdirSync(path.join(sharedUiRoot, "node_modules"), { recursive: true });
|
|
fs.mkdirSync(path.join(sharedUiRoot, ".vite"), { recursive: true });
|
|
fs.mkdirSync(path.join(sharedUiRoot, "dist"), { recursive: true });
|
|
fs.mkdirSync(serverRoot, { recursive: true });
|
|
fs.mkdirSync(worktreeUiRoot, { recursive: true });
|
|
|
|
fs.symlinkSync(path.join(sharedUiRoot, "node_modules"), path.join(worktreeUiRoot, "node_modules"));
|
|
fs.symlinkSync(path.join(sharedUiRoot, ".vite"), path.join(worktreeUiRoot, ".vite"));
|
|
fs.symlinkSync(path.join(sharedUiRoot, "dist"), path.join(worktreeUiRoot, "dist"));
|
|
|
|
const ignorePaths = resolveServerDevWatchIgnorePaths(serverRoot);
|
|
|
|
expect(ignorePaths).toContain(path.join(worktreeUiRoot, "node_modules"));
|
|
expect(ignorePaths).toContain(`${path.join(worktreeUiRoot, "node_modules").replaceAll(path.sep, "/")}/**`);
|
|
expect(ignorePaths).toContain(fs.realpathSync(path.join(sharedUiRoot, "node_modules")));
|
|
expect(ignorePaths).toContain(`${fs.realpathSync(path.join(sharedUiRoot, "node_modules")).replaceAll(path.sep, "/")}/**`);
|
|
expect(ignorePaths).toContain(path.join(worktreeUiRoot, "node_modules", ".vite-temp"));
|
|
expect(ignorePaths).toContain(
|
|
`${path.join(worktreeUiRoot, "node_modules", ".vite-temp").replaceAll(path.sep, "/")}/**`,
|
|
);
|
|
expect(ignorePaths).toContain(path.join(worktreeUiRoot, ".vite"));
|
|
expect(ignorePaths).toContain(fs.realpathSync(path.join(sharedUiRoot, ".vite")));
|
|
expect(ignorePaths).toContain(path.join(worktreeUiRoot, "dist"));
|
|
expect(ignorePaths).toContain(fs.realpathSync(path.join(sharedUiRoot, "dist")));
|
|
expect(ignorePaths).toContain("**/{node_modules,bower_components,vendor}/**");
|
|
expect(ignorePaths).toContain("**/.vite-temp/**");
|
|
});
|
|
});
|