-
-
Notifications
You must be signed in to change notification settings - Fork 15
Expand file tree
/
Copy pathobsidian-e2e-cli.test.ts
More file actions
78 lines (68 loc) · 1.95 KB
/
Copy pathobsidian-e2e-cli.test.ts
File metadata and controls
78 lines (68 loc) · 1.95 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
73
74
75
76
77
78
import { describe, expect, it } from "vitest";
import {
obsidianCommandArgs,
obsidianEnv,
parseArgs,
} from "./obsidian-e2e-cli.mjs";
describe("obsidian-e2e-cli", () => {
it("defaults to an eval of the vault name when no Obsidian command is provided", () => {
const parsed = parseArgs([]);
expect(parsed.instanceArgs).toEqual([]);
expect(parsed.commandArgs).toEqual(["eval", "code=app.vault.getName()"]);
});
it("splits instance options from the Obsidian command", () => {
const parsed = parseArgs([
"--vault",
"podnotes-worktree-a",
"--profile-root",
"profiles",
"dev:errors",
]);
expect(parsed.instanceArgs).toEqual([
"--vault",
"podnotes-worktree-a",
"--profile-root",
"profiles",
]);
expect(parsed.commandArgs).toEqual(["dev:errors"]);
});
it("uses -- to pass option-like Obsidian command arguments", () => {
const parsed = parseArgs([
"--vault",
"podnotes-worktree-a",
"--",
"eval",
"--some-obsidian-flag",
]);
expect(parsed.instanceArgs).toEqual(["--vault", "podnotes-worktree-a"]);
expect(parsed.commandArgs).toEqual(["eval", "--some-obsidian-flag"]);
});
it("accepts the leading separator produced by npm run before wrapper options", () => {
const parsed = parseArgs([
"--",
"--vault",
"podnotes-worktree-a",
"eval",
"code=app.vault.getName()",
]);
expect(parsed.instanceArgs).toEqual(["--vault", "podnotes-worktree-a"]);
expect(parsed.commandArgs).toEqual(["eval", "code=app.vault.getName()"]);
});
it("prefixes commands with the resolved isolated vault", () => {
expect(
obsidianCommandArgs({ vaultName: "podnotes-worktree-a" }, [
"eval",
"code=app.vault.getName()",
]),
).toEqual([
"vault=podnotes-worktree-a",
"eval",
"code=app.vault.getName()",
]);
});
it("runs Obsidian CLI commands with the isolated HOME", () => {
expect(obsidianEnv({ obsidianHome: "/tmp/podnotes/home" })).toMatchObject({
HOME: "/tmp/podnotes/home",
});
});
});