-
-
Notifications
You must be signed in to change notification settings - Fork 96
Expand file tree
/
Copy pathconstructTestHelpers.ts
More file actions
72 lines (69 loc) · 1.72 KB
/
Copy pathconstructTestHelpers.ts
File metadata and controls
72 lines (69 loc) · 1.72 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
import type {
ExcludableSnapshotField,
ExtraSnapshotField,
FakeCommandServerApi,
HatTokenMap,
IDE,
NormalizedIDE,
ScopeProvider,
SerializedMarks,
StoredTargetKey,
TargetPlainObject,
TestCaseSnapshot,
TextEditor,
} from "@cursorless/lib-common";
import type { StoredTargetMap } from "@cursorless/lib-engine";
import { plainObjectToTarget } from "@cursorless/lib-engine";
import type {
NeovimIDE,
NeovimTestHelpers,
} from "@cursorless/lib-neovim-common";
import { takeSnapshot } from "@cursorless/lib-test-case-recorder";
export function constructTestHelpers(
commandServerApi: FakeCommandServerApi,
storedTargets: StoredTargetMap,
hatTokenMap: HatTokenMap,
neovimIDE: NeovimIDE,
normalizedIde: NormalizedIDE,
scopeProvider: ScopeProvider,
injectIde: (ide: IDE) => void,
): NeovimTestHelpers | undefined {
return {
commandServerApi,
ide: normalizedIde,
neovimIDE,
injectIde,
scopeProvider,
// FIXME: Remove this once we have a better way to get this function
// accessible from our tests
takeSnapshot(
excludeFields: ExcludableSnapshotField[],
extraFields: ExtraSnapshotField[],
editor: TextEditor,
ide: IDE,
marks: SerializedMarks | undefined,
): Promise<TestCaseSnapshot> {
return takeSnapshot(
storedTargets,
excludeFields,
extraFields,
editor,
ide,
marks,
undefined,
undefined,
);
},
setStoredTarget(
editor: TextEditor,
key: StoredTargetKey,
targets: TargetPlainObject[] | undefined,
): void {
storedTargets.set(
key,
targets?.map((target) => plainObjectToTarget(editor, target)),
);
},
hatTokenMap,
};
}