-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Expand file tree
/
Copy pathDesktopEarlyElectronStartup.test.ts
More file actions
70 lines (61 loc) · 2.27 KB
/
Copy pathDesktopEarlyElectronStartup.test.ts
File metadata and controls
70 lines (61 loc) · 2.27 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
import { assert, describe, it } from "@effect/vitest";
import {
resolveEarlyLinuxElectronOptions,
resolveEarlyLinuxPasswordStorePreference,
} from "./DesktopEarlyElectronStartup.ts";
describe("DesktopEarlyElectronStartup", () => {
it("reads the persisted linux password-store preference before Electron is ready", () => {
const preference = resolveEarlyLinuxPasswordStorePreference({
env: { T3CODE_HOME: "/home/user/.t3-test" },
homeDirectory: "/home/user",
readFileString: (path) => {
assert.equal(path, "/home/user/.t3-test/userdata/desktop-settings.json");
return JSON.stringify({ linuxPasswordStore: "kwallet6" });
},
});
assert.equal(preference, "kwallet6");
});
it("falls back to auto when the early settings document is missing or invalid", () => {
const preference = resolveEarlyLinuxPasswordStorePreference({
env: {},
homeDirectory: "/home/user",
readFileString: () => {
throw new Error("missing");
},
});
assert.equal(preference, "auto");
});
it("preserves absolute root paths when resolving early settings", () => {
const preference = resolveEarlyLinuxPasswordStorePreference({
env: { T3CODE_HOME: "/" },
homeDirectory: "/home/user",
readFileString: (path) => {
assert.equal(path, "/userdata/desktop-settings.json");
return JSON.stringify({ linuxPasswordStore: "kwallet6" });
},
});
assert.equal(preference, "kwallet6");
});
it("resolves the early linux Electron switches and DBus fallback", () => {
const options = resolveEarlyLinuxElectronOptions({
env: {
T3CODE_HOME: "/home/user/.t3-test",
XDG_CURRENT_DESKTOP: "niri",
XDG_RUNTIME_DIR: "/run/user/1000",
VITE_DEV_SERVER_URL: "http://127.0.0.1:5173",
},
exists: (path) => path === "/run/user/1000/bus",
homeDirectory: "/home/user",
readFileString: (path) => {
assert.equal(path, "/home/user/.t3-test/dev/desktop-settings.json");
return JSON.stringify({ linuxPasswordStore: "auto" });
},
uid: 1000,
});
assert.deepEqual(options, {
dbusSessionBusAddress: "unix:path=/run/user/1000/bus",
linuxWmClass: "t3code-dev",
passwordStore: "gnome-libsecret",
});
});
});