MCPcopy Index your code
hub / github.com/coder/mux / createSubagentSidebarHarness

Function createSubagentSidebarHarness

tests/ui/workspaces/subagents.test.ts:119–180  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

117}
118
119async function createSubagentSidebarHarness(): Promise<SubagentSidebarHarness> {
120 const env = await createTestEnvironment();
121 const repoPath = await createTempGitRepo();
122 const workspaceIdsToRemove: string[] = [];
123 let view: RenderedApp | undefined;
124 let cleanupDom: (() => void) | undefined;
125
126 try {
127 await trustProject(env, repoPath);
128 const trunkBranch = await detectDefaultTrunkBranch(repoPath);
129
130 return {
131 env,
132 repoPath,
133 trunkBranch,
134 async createWorkspace(title, branchPrefix) {
135 const result = await env.orpc.workspace.create({
136 projectPath: repoPath,
137 branchName: generateBranchName(branchPrefix),
138 trunkBranch,
139 title,
140 });
141
142 if (!result.success) {
143 throw new Error(`Failed to create workspace (${title}): ${result.error}`);
144 }
145
146 workspaceIdsToRemove.push(result.metadata.id);
147 return result.metadata;
148 },
149 async render(metadata, beforeRender) {
150 cleanupDom = installDom();
151 beforeRender?.();
152 view = renderApp({ apiClient: env.orpc, metadata });
153 await setupWorkspaceView(view, metadata, metadata.id);
154 return view;
155 },
156 async cleanup() {
157 if (view && cleanupDom) {
158 await cleanupView(view, cleanupDom);
159 } else if (cleanupDom) {
160 cleanupDom();
161 }
162
163 for (const workspaceId of workspaceIdsToRemove.reverse()) {
164 try {
165 await env.orpc.workspace.remove({ workspaceId, options: { force: true } });
166 } catch {
167 // Best effort cleanup.
168 }
169 }
170
171 await cleanupTestEnvironment(env);
172 await cleanupTempGitRepo(repoPath);
173 },
174 };
175 } catch (error) {
176 await cleanupTestEnvironment(env);

Callers 1

subagents.test.tsFile · 0.85

Calls 6

createTestEnvironmentFunction · 0.90
createTempGitRepoFunction · 0.90
trustProjectFunction · 0.90
detectDefaultTrunkBranchFunction · 0.90
cleanupTestEnvironmentFunction · 0.90
cleanupTempGitRepoFunction · 0.90

Tested by

no test coverage detected