1{ pkgs, ... }:
2{
3 name = "nodered";
4 meta = with pkgs.lib.maintainers; {
5 maintainers = [ matthewcroughan ];
6 };
7
8 nodes = {
9 client =
10 { config, pkgs, ... }:
11 {
12 environment.systemPackages = [ pkgs.curl ];
13 };
14 nodered =
15 { config, pkgs, ... }:
16 {
17 services.node-red = {
18 enable = true;
19 openFirewall = true;
20 };
21 };
22 };
23
24 testScript = ''
25 start_all()
26 nodered.wait_for_unit("node-red.service")
27 nodered.wait_for_open_port(1880)
28
29 client.wait_for_unit("multi-user.target")
30
31 with subtest("Check that the Node-RED webserver can be reached."):
32 assert "<title>Node-RED</title>" in client.succeed(
33 "curl -sSf http:/nodered:1880/ | grep title"
34 )
35 '';
36}