1import ../make-test-python.nix (
2 { lib, pkgs, ... }:
3 {
4 name = "peering-manager";
5
6 meta = with lib.maintainers; {
7 maintainers = [ yuka ];
8 };
9
10 nodes.machine =
11 { ... }:
12 {
13 services.peering-manager = {
14 enable = true;
15 secretKeyFile = pkgs.writeText "secret" ''
16 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
17 '';
18 };
19 };
20
21 testScript =
22 { nodes }:
23 ''
24 machine.start()
25 machine.wait_for_unit("peering-manager.target")
26 machine.wait_until_succeeds("journalctl --since -1m --unit peering-manager --grep Listening")
27
28 print(machine.succeed(
29 "curl -sSfL http://[::1]:8001"
30 ))
31 with subtest("Home screen loads"):
32 machine.succeed(
33 "curl -sSfL http://[::1]:8001 | grep '<title>Home - Peering Manager</title>'"
34 )
35 with subtest("checks succeed"):
36 machine.succeed(
37 "systemctl stop peering-manager peering-manager-rq"
38 )
39 machine.succeed(
40 "sudo -u postgres psql -c 'ALTER USER \"peering-manager\" WITH SUPERUSER;'"
41 )
42 machine.succeed(
43 "cd ${nodes.machine.system.build.peeringManagerPkg}/opt/peering-manager ; peering-manager-manage test --no-input"
44 )
45 '';
46 }
47)