Skip to content

Commit b3811fa

Browse files
committed
test: add test script to check that pins are correct
1 parent 2a71f2e commit b3811fa

File tree

2 files changed

+75
-0
lines changed

2 files changed

+75
-0
lines changed

tests/default.nix

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,16 @@
99
suite = import suitePath {
1010
inherit pkgs home-manager;
1111
zen-browser-flake = self;
12+
13+
wrapWithX11 = testScript: ''
14+
machine.wait_for_unit("multi-user.target")
15+
machine.wait_for_unit("home-manager-testuser.service")
16+
17+
machine.succeed("( nohup Xvfb :99 -screen 0 1024x768x24 </dev/null >>/tmp/xvfb.log 2>&1 & )")
18+
machine.succeed("sleep 2")
19+
machine.succeed("su - testuser -c 'DISPLAY=:99 timeout 5 zen-beta about:blank' || true")
20+
${testScript}
21+
'';
1222
};
1323
in
1424
pkgs.testers.nixosTest {
@@ -18,6 +28,12 @@
1828
{
1929
imports = [home-manager.nixosModules.home-manager];
2030

31+
environment.systemPackages = with pkgs; [
32+
jq
33+
mozlz4a
34+
xorg-server
35+
];
36+
2137
users.users.testuser = {
2238
isNormalUser = true;
2339
home = "/home/testuser";
@@ -45,6 +61,7 @@
4561

4662
suites = {
4763
"enable-beta-via-module" = ./enable-beta.nix;
64+
"pins-persistent" = ./pins-persistent.nix;
4865
};
4966
in
5067
pkgs.lib.mapAttrs (name: path: mkGenericTest name path) suites

tests/pins-persistent.nix

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{
2+
zen-browser-flake,
3+
wrapWithX11,
4+
...
5+
}: {
6+
homeModule = {
7+
imports = [zen-browser-flake.homeModules.beta];
8+
9+
programs.zen-browser = {
10+
enable = true;
11+
suppressXdgMigrationWarning = true;
12+
13+
profiles.default = {
14+
pins = {
15+
"Test Pin" = {
16+
id = "1213fc75-2019-436e-9c26-0b7995e8ca37";
17+
url = "https://nixos.org";
18+
title = "NixOS";
19+
position = 100;
20+
};
21+
"Another Pin" = {
22+
id = "d9acb137-4117-4b54-a3de-4eab1a7001dd";
23+
url = "https://search.nixos.org/packages";
24+
title = "Nix Packages";
25+
position = 101;
26+
};
27+
};
28+
};
29+
};
30+
};
31+
32+
testScript = wrapWithX11 ''
33+
machine.succeed("test -f /home/testuser/.config/zen/profiles.ini")
34+
machine.succeed("grep -q 'Name=default' /home/testuser/.config/zen/profiles.ini")
35+
machine.succeed("test -d /home/testuser/.config/zen/default")
36+
37+
machine.succeed("test -f /home/testuser/.config/zen/default/zen-sessions.jsonlz4 || ( echo '{\"spaces\":[],\"tabs\":[],\"folders\":[],\"groups\":[]}' > /tmp/min.json && mozlz4a /tmp/min.json /home/testuser/.config/zen/default/zen-sessions.jsonlz4 && chown testuser:users /home/testuser/.config/zen/default/zen-sessions.jsonlz4 )")
38+
39+
machine.succeed("mozlz4a -d /home/testuser/.config/zen/default/zen-sessions.jsonlz4 /tmp/sessions-after-first-run.json")
40+
machine.succeed("jq -e '.tabs != null and .spaces != null' /tmp/sessions-after-first-run.json")
41+
42+
machine.succeed("systemctl restart home-manager-testuser.service")
43+
machine.wait_for_unit("home-manager-testuser.service")
44+
45+
machine.succeed("mozlz4a -d /home/testuser/.config/zen/default/zen-sessions.jsonlz4 /tmp/sessions.json")
46+
machine.succeed("test $(jq '[.tabs[] | select(.pinned == true)] | length' /tmp/sessions.json) -ge 2")
47+
machine.succeed("jq -e '[.tabs[] | select(.zenSyncId == \"{1213fc75-2019-436e-9c26-0b7995e8ca37}\")] | length == 1' /tmp/sessions.json")
48+
machine.succeed("jq -e '[.tabs[] | select(.zenSyncId == \"{d9acb137-4117-4b54-a3de-4eab1a7001dd}\")] | length == 1' /tmp/sessions.json")
49+
machine.succeed("jq -e '[.tabs[] | select(.zenSyncId == \"{1213fc75-2019-436e-9c26-0b7995e8ca37}\") | .entries[0].url] | .[0] == \"https://nixos.org\"' /tmp/sessions.json")
50+
machine.succeed("jq -e '[.tabs[] | select(.zenSyncId == \"{d9acb137-4117-4b54-a3de-4eab1a7001dd}\") | .entries[0].url] | .[0] == \"https://search.nixos.org/packages\"' /tmp/sessions.json")
51+
52+
machine.succeed("su - testuser -c 'DISPLAY=:99 timeout 5 zen-beta about:blank' || true")
53+
machine.succeed("mozlz4a -d /home/testuser/.config/zen/default/zen-sessions.jsonlz4 /tmp/sessions-after-zen.json")
54+
machine.succeed("test $(jq '[.tabs[] | select(.pinned == true)] | length' /tmp/sessions-after-zen.json) -ge 2")
55+
machine.succeed("jq -e '[.tabs[] | select(.zenSyncId == \"{1213fc75-2019-436e-9c26-0b7995e8ca37}\")] | length == 1' /tmp/sessions-after-zen.json")
56+
machine.succeed("jq -e '[.tabs[] | select(.zenSyncId == \"{d9acb137-4117-4b54-a3de-4eab1a7001dd}\")] | length == 1' /tmp/sessions-after-zen.json")
57+
'';
58+
}

0 commit comments

Comments
 (0)