summary refs log tree commit diff
path: root/nixos/tests/taskserver.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/tests/taskserver.nix')
-rw-r--r--nixos/tests/taskserver.nix42
1 files changed, 25 insertions, 17 deletions
diff --git a/nixos/tests/taskserver.nix b/nixos/tests/taskserver.nix
index 61f2b06a7f74..413c52a303ec 100644
--- a/nixos/tests/taskserver.nix
+++ b/nixos/tests/taskserver.nix
@@ -1,7 +1,7 @@
 import ./make-test.nix {
   name = "taskserver";
 
-  nodes = {
+  nodes = rec {
     server = {
       networking.firewall.enable = false;
       services.taskserver.enable = true;
@@ -19,15 +19,10 @@ import ./make-test.nix {
       users.users.alice.isNormalUser = true;
       users.users.bob.isNormalUser = true;
       users.users.foo.isNormalUser = true;
+      users.users.bar.isNormalUser = true;
     };
 
-    client2 = { pkgs, ... }: {
-      networking.firewall.enable = false;
-      environment.systemPackages = [ pkgs.taskwarrior ];
-      users.users.alice.isNormalUser = true;
-      users.users.bob.isNormalUser = true;
-      users.users.foo.isNormalUser = true;
-    };
+    client2 = client1;
   };
 
   testScript = { nodes, ... }: let
@@ -65,6 +60,17 @@ import ./make-test.nix {
       }
     }
 
+    sub testSync ($) {
+      my $user = $_[0];
+      subtest "sync for user $user", sub {
+        $client1->succeed(su $user, "task add foo >&2");
+        $client1->succeed(su $user, "task sync >&2");
+        $client2->fail(su $user, "task list >&2");
+        $client2->succeed(su $user, "task sync >&2");
+        $client2->succeed(su $user, "task list >&2");
+      };
+    }
+
     startAll;
 
     $server->waitForUnit("taskserver.service");
@@ -84,14 +90,16 @@ import ./make-test.nix {
     setupClientsFor "testOrganisation", "foo";
     setupClientsFor "anotherOrganisation", "bob";
 
-    for ("alice", "bob", "foo") {
-      subtest "sync for $_", sub {
-        $client1->succeed(su $_, "task add foo >&2");
-        $client1->succeed(su $_, "task sync >&2");
-        $client2->fail(su $_, "task list >&2");
-        $client2->succeed(su $_, "task sync >&2");
-        $client2->succeed(su $_, "task list >&2");
-      };
-    }
+    testSync $_ for ("alice", "bob", "foo");
+
+    $server->fail("nixos-taskserver add-user imperativeOrg bar");
+    $server->succeed(
+      "nixos-taskserver add-org imperativeOrg",
+      "nixos-taskserver add-user imperativeOrg bar"
+    );
+
+    setupClientsFor "imperativeOrg", "bar";
+
+    testSync "bar";
   '';
 }