about summary refs log tree commit diff
path: root/nixpkgs/nixos/tests/zigbee2mqtt.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/tests/zigbee2mqtt.nix')
-rw-r--r--nixpkgs/nixos/tests/zigbee2mqtt.nix32
1 files changed, 32 insertions, 0 deletions
diff --git a/nixpkgs/nixos/tests/zigbee2mqtt.nix b/nixpkgs/nixos/tests/zigbee2mqtt.nix
new file mode 100644
index 000000000000..9d6d03a4b9bb
--- /dev/null
+++ b/nixpkgs/nixos/tests/zigbee2mqtt.nix
@@ -0,0 +1,32 @@
+import ./make-test-python.nix ({ pkgs, lib, ... }:
+  {
+    name = "zigbee2mqtt";
+    nodes.machine = { pkgs, ... }:
+      {
+        systemd.services.dummy-serial = {
+          wantedBy = [
+            "multi-user.target"
+          ];
+          serviceConfig = {
+            ExecStart = "${pkgs.socat}/bin/socat pty,link=/dev/ttyACM0,mode=666 pty,link=/dev/ttyACM1";
+          };
+        };
+
+        services.zigbee2mqtt = {
+          enable = true;
+        };
+
+        systemd.services.zigbee2mqtt.serviceConfig.DevicePolicy = lib.mkForce "auto";
+      };
+
+    testScript = ''
+      machine.wait_for_unit("multi-user.target")
+      machine.wait_until_fails("systemctl status zigbee2mqtt.service")
+      machine.succeed(
+          "journalctl -eu zigbee2mqtt | grep 'Failed to connect to the adapter'"
+      )
+
+      machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service"))
+    '';
+  }
+)