MCPcopy
hub / github.com/coder/mux / createFixture

Function createFixture

src/node/services/worktreeArchiveSnapshotService.test.ts:44–99  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

42}
43
44async function createFixture(): Promise<TestFixture> {
45 const muxRoot = await fs.mkdtemp(path.join(os.tmpdir(), "mux-worktree-archive-snapshot-"));
46 const srcBaseDir = path.join(muxRoot, "src");
47 const projectPath = path.join(muxRoot, "project");
48 const workspaceName = "feature-snapshot";
49 const workspacePath = path.join(srcBaseDir, "project", workspaceName);
50 const workspaceId = "ws-snapshot";
51
52 await fs.mkdir(projectPath, { recursive: true });
53 runGit(projectPath, ["init", "-b", "main"]);
54 await fs.writeFile(path.join(projectPath, "tracked.txt"), "base\n", "utf-8");
55 runGit(projectPath, ["add", "tracked.txt"]);
56 runGit(projectPath, ["commit", "-m", "base"]);
57 const baseSha = runGit(projectPath, ["rev-parse", "HEAD"]);
58
59 await fs.mkdir(path.dirname(workspacePath), { recursive: true });
60 runGit(projectPath, ["worktree", "add", "-b", workspaceName, workspacePath, "main"]);
61
62 const config = new Config(muxRoot);
63 await config.editConfig((cfg) => {
64 cfg.projects.set(projectPath, {
65 trusted: false,
66 workspaces: [
67 {
68 path: workspacePath,
69 id: workspaceId,
70 name: workspaceName,
71 runtimeConfig: { type: "worktree", srcBaseDir },
72 taskTrunkBranch: "main",
73 taskBaseCommitSha: baseSha,
74 },
75 ],
76 });
77 return cfg;
78 });
79
80 const metadata: WorkspaceMetadata = {
81 id: workspaceId,
82 name: workspaceName,
83 projectName: "project",
84 projectPath,
85 runtimeConfig: { type: "worktree", srcBaseDir },
86 };
87
88 return {
89 muxRoot,
90 projectPath,
91 workspacePath,
92 workspaceId,
93 workspaceName,
94 baseSha,
95 metadata,
96 config,
97 service: new WorktreeArchiveSnapshotService(config),
98 };
99}
100
101async function makeWorkspaceDirty(fixture: TestFixture): Promise<void> {

Calls 4

editConfigMethod · 0.95
runGitFunction · 0.85
setMethod · 0.80
writeFileMethod · 0.65

Tested by

no test coverage detected