nixosTests.davis: migrate to runTest (#394468)
This commit is contained in:
@@ -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 {};
|
||||
|
||||
+50
-53
@@ -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 '<title>Davis</title>'"
|
||||
)
|
||||
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 '<title>Davis</title>'"
|
||||
)
|
||||
|
||||
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* ]]"
|
||||
)
|
||||
'';
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user