about summary refs log tree commit diff
path: root/nixos/tests/taskserver.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2016-04-11 12:03:16 +0200
committeraszlig <aszlig@redmoonstudios.org>2016-04-11 12:03:16 +0200
commit636e0e552d7084c0a3b09bf7cf2ad42f560e3819 (patch)
tree4d0142a9b225c8606f7327b10922a1b8c261c890 /nixos/tests/taskserver.nix
parent2acf8677fa85ee2d3d53de401e490e530a1049cc (diff)
downloadnixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.tar
nixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.tar.gz
nixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.tar.bz2
nixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.tar.lz
nixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.tar.xz
nixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.tar.zst
nixlib-636e0e552d7084c0a3b09bf7cf2ad42f560e3819.zip
nixos/tests/taskserver: Test imperative users
As the nixos-taskserver command can also be used to imperatively manage
users, we need to test this as well.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
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";
   '';
 }