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