diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index b25df8a49f00..a989106da05d 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -314,7 +314,7 @@ in { darling = handleTest ./darling.nix {}; darling-dmg = runTest ./darling-dmg.nix; dae = handleTest ./dae.nix {}; - davis = handleTest ./davis.nix {}; + davis = runTest ./davis.nix; db-rest = handleTest ./db-rest.nix {}; dconf = handleTest ./dconf.nix {}; ddns-updater = handleTest ./ddns-updater.nix {}; diff --git a/nixos/tests/davis.nix b/nixos/tests/davis.nix index 0fb80d0e7e20..480191704e2c 100644 --- a/nixos/tests/davis.nix +++ b/nixos/tests/davis.nix @@ -1,59 +1,56 @@ -import ./make-test-python.nix ( - { lib, pkgs, ... }: +{ pkgs, ... }: +{ + name = "davis"; - { - name = "davis"; + meta.maintainers = pkgs.davis.meta.maintainers; - meta.maintainers = pkgs.davis.meta.maintainers; - - nodes.machine = - { config, ... }: - { - virtualisation = { - memorySize = 512; - }; - - services.davis = { - enable = true; - hostname = "davis.example.com"; - database = { - driver = "postgresql"; - }; - mail = { - dsnFile = "${pkgs.writeText "davisMailDns" "smtp://username:password@example.com:25"}"; - inviteFromAddress = "dav@example.com"; - }; - adminLogin = "admin"; - appSecretFile = "${pkgs.writeText "davisAppSecret" "52882ef142066e09ab99ce816ba72522e789505caba224"}"; - adminPasswordFile = "${pkgs.writeText "davisAdminPass" "nixos"}"; - nginx = { }; - }; + nodes.machine = + { config, ... }: + { + virtualisation = { + memorySize = 512; }; - testScript = '' - start_all() - machine.wait_for_unit("postgresql.service") - machine.wait_for_unit("davis-env-setup.service") - machine.wait_for_unit("davis-db-migrate.service") - machine.wait_for_unit("nginx.service") - machine.wait_for_unit("phpfpm-davis.service") + services.davis = { + enable = true; + hostname = "davis.example.com"; + database = { + driver = "postgresql"; + }; + mail = { + dsnFile = "${pkgs.writeText "davisMailDns" "smtp://username:password@example.com:25"}"; + inviteFromAddress = "dav@example.com"; + }; + adminLogin = "admin"; + appSecretFile = "${pkgs.writeText "davisAppSecret" "52882ef142066e09ab99ce816ba72522e789505caba224"}"; + adminPasswordFile = "${pkgs.writeText "davisAdminPass" "nixos"}"; + nginx = { }; + }; + }; - with subtest("welcome screen loads"): - machine.succeed( - "curl -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/ | grep 'Davis'" - ) + testScript = '' + start_all() + machine.wait_for_unit("postgresql.service") + machine.wait_for_unit("davis-env-setup.service") + machine.wait_for_unit("davis-db-migrate.service") + machine.wait_for_unit("nginx.service") + machine.wait_for_unit("phpfpm-davis.service") - with subtest("login works"): - csrf_token = machine.succeed( - "curl -c /tmp/cookies -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login | grep '_csrf_token' | sed -E 's,.*value=\"(.*)\".*,\\1,g'" - ) - r = machine.succeed( - f"curl -b /tmp/cookies --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login -X POST -F _username=admin -F _password=nixos -F _csrf_token={csrf_token.strip()} -D headers" - ) - print(r) - machine.succeed( - "[[ $(grep -i 'location: ' headers | cut -d: -f2- | xargs echo) == /dashboard* ]]" - ) - ''; - } -) + with subtest("welcome screen loads"): + machine.succeed( + "curl -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/ | grep 'Davis'" + ) + + with subtest("login works"): + csrf_token = machine.succeed( + "curl -c /tmp/cookies -sSfL --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login | grep '_csrf_token' | sed -E 's,.*value=\"(.*)\".*,\\1,g'" + ) + r = machine.succeed( + f"curl -b /tmp/cookies --resolve davis.example.com:80:127.0.0.1 http://davis.example.com/login -X POST -F _username=admin -F _password=nixos -F _csrf_token={csrf_token.strip()} -D headers" + ) + print(r) + machine.succeed( + "[[ $(grep -i 'location: ' headers | cut -d: -f2- | xargs echo) == /dashboard* ]]" + ) + ''; +}