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

Function createHarness

src/node/services/workspaceService.test.ts:8098–8161  ·  view source on GitHub ↗
(options?: {
    archivedAt?: string;
    runtimeConfig?: FrontendWorkspaceMetadata["runtimeConfig"];
  })

Source from the content-addressed store, hash-verified

8096 });
8097
8098 function createHarness(options?: {
8099 archivedAt?: string;
8100 runtimeConfig?: FrontendWorkspaceMetadata["runtimeConfig"];
8101 }): {
8102 workspaceService: WorkspaceService;
8103 metadataEvents: Array<FrontendWorkspaceMetadata | null>;
8104 managedPath: string;
8105 } {
8106 const runtimeConfig = options?.runtimeConfig ?? {
8107 type: "worktree",
8108 srcBaseDir: tempSrcBaseDir,
8109 };
8110 const managedPath = path.join(tempSrcBaseDir, "_workspaces", workspaceName);
8111
8112 const getCurrentMetadata = async (): Promise<FrontendWorkspaceMetadata> => {
8113 const transcriptOnly = await fsPromises
8114 .access(managedPath)
8115 .then(() => false)
8116 .catch(() => true);
8117
8118 return {
8119 id: workspaceId,
8120 name: workspaceName,
8121 projectName,
8122 projectPath,
8123 runtimeConfig,
8124 archivedAt: options?.archivedAt,
8125 transcriptOnly,
8126 namedWorkspacePath: managedPath,
8127 };
8128 };
8129
8130 const mockConfig: Partial<Config> = {
8131 srcDir: tempSrcBaseDir,
8132 getSessionDir: mock(() => "/tmp/test/sessions"),
8133 generateStableId: mock(() => "test-id"),
8134 getAllWorkspaceMetadata: mock(async () => [await getCurrentMetadata()]),
8135 };
8136
8137 const aiService = {
8138 on: mock(() => undefined),
8139 off: mock(() => undefined),
8140 } as unknown as AIService;
8141
8142 const workspaceService = createWorkspaceServiceForTest({
8143 config: mockConfig,
8144 historyService,
8145 aiService,
8146 initStateManager: mockInitStateManager as InitStateManager,
8147 });
8148
8149 const metadataEvents: Array<FrontendWorkspaceMetadata | null> = [];
8150 workspaceService.on("metadata", (event: unknown) => {
8151 if (!event || typeof event !== "object") {
8152 return;
8153 }
8154 const parsed = event as { workspaceId: string; metadata: FrontendWorkspaceMetadata | null };
8155 if (parsed.workspaceId === workspaceId) {

Callers 1

Calls 4

getCurrentMetadataFunction · 0.85
onMethod · 0.80
pushMethod · 0.65

Tested by

no test coverage detected