-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathvisit-operator-mode.ts
39 lines (32 loc) · 1.07 KB
/
visit-operator-mode.ts
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
import { visit, waitFor } from '@ember/test-helpers';
import stringify from 'safe-stable-stringify';
import { time } from '@cardstack/runtime-common/helpers/time';
import { SerializedState } from '@cardstack/host/services/operator-mode-state-service';
export default async function visitOperatorMode({
stacks,
submode,
codePath,
fileView,
openDirs,
}: Partial<SerializedState>) {
let operatorModeState = {
stacks: stacks || [],
submode: submode || 'interact',
...(codePath ? { codePath } : {}),
...(fileView ? { fileView } : {}),
...(openDirs ? { openDirs } : {}),
};
let operatorModeStateParam = stringify(operatorModeState)!;
await time('visitOperatorMode:visit', async () => {
return await visit(
`/?operatorModeEnabled=true&operatorModeState=${encodeURIComponent(
operatorModeStateParam,
)}`,
);
});
if (stacks && stacks.length > 0 && (!submode || submode === 'interact')) {
await time('visitOperatorMode:waitFor', async () => {
return await waitFor('[data-test-operator-mode-stack]');
});
}
}