1{ lib, ... }:
2
3{
4 name = "zwave-js";
5 meta.maintainers = with lib.maintainers; [ graham33 ];
6
7 nodes = {
8 machine = {
9 # show that 0400 secrets can be used by the DynamicUser; ideally
10 # this would be an out-of-store file, e.g. /run/secrets/jwavejs/secrets.json
11 environment.etc."zwavejs/secrets.json" = {
12 mode = "0400";
13 text = builtins.toJSON {
14 securityKeys.S0_Legacy = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
15 };
16 };
17 services.zwave-js = {
18 enable = true;
19 serialPort = "/dev/null";
20 extraFlags = [ "--mock-driver" ];
21 secretsConfigFile = "/etc/zwavejs/secrets.json";
22 };
23 };
24 };
25
26 testScript = ''
27 start_all()
28
29 machine.wait_for_unit("zwave-js.service")
30 machine.wait_for_open_port(3000)
31 machine.wait_until_succeeds("journalctl --since -1m --unit zwave-js --grep 'ZwaveJS server listening'")
32 '';
33}