1import ./make-test-python.nix (
2 { pkgs, lib, ... }:
3
4 let
5 testPort = 6052;
6 unixSocket = "/run/esphome/esphome.sock";
7 in
8 {
9 name = "esphome";
10 meta.maintainers = with lib.maintainers; [ oddlama ];
11
12 nodes = {
13 esphomeTcp =
14 { ... }:
15 {
16 services.esphome = {
17 enable = true;
18 port = testPort;
19 address = "0.0.0.0";
20 openFirewall = true;
21 };
22 };
23
24 esphomeUnix =
25 { ... }:
26 {
27 services.esphome = {
28 enable = true;
29 enableUnixSocket = true;
30 };
31 };
32 };
33
34 testScript = ''
35 esphomeTcp.wait_for_unit("esphome.service")
36 esphomeTcp.wait_for_open_port(${toString testPort})
37 esphomeTcp.succeed("curl --fail http://localhost:${toString testPort}/")
38
39 esphomeUnix.wait_for_unit("esphome.service")
40 esphomeUnix.wait_for_file("${unixSocket}")
41 esphomeUnix.succeed("curl --fail --unix-socket ${unixSocket} http://localhost/")
42 '';
43 }
44)