-
Notifications
You must be signed in to change notification settings - Fork 13.1k
Expand file tree
/
Copy pathmockWorkspaceContext.ts
More file actions
33 lines (29 loc) · 930 Bytes
/
mockWorkspaceContext.ts
File metadata and controls
33 lines (29 loc) · 930 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* @license
* Copyright 2025 Google LLC
* SPDX-License-Identifier: Apache-2.0
*/
import { vi } from 'vitest';
import type { WorkspaceContext } from '../utils/workspaceContext.js';
/**
* Creates a mock WorkspaceContext for testing
* @param rootDir The root directory to use for the mock
* @param additionalDirs Optional additional directories to include in the workspace
* @returns A mock WorkspaceContext instance
*/
export function createMockWorkspaceContext(
rootDir: string,
additionalDirs: string[] = [],
): WorkspaceContext {
const allDirs = [rootDir, ...additionalDirs];
const mockWorkspaceContext = {
addDirectory: vi.fn(),
getDirectories: vi.fn().mockReturnValue(allDirs),
isPathWithinWorkspace: vi
.fn()
.mockImplementation((path: string) =>
allDirs.some((dir) => path.startsWith(dir)),
),
} as unknown as WorkspaceContext;
return mockWorkspaceContext;
}