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