nixos/dokuwiki: add test for login page

Cookie jar can be used to accurately test if the login was successful.
Simply searching for the user name is not sufficient, since it is always
part of the returned page after login. The page should display a phrase
containing the username after login.
This commit is contained in:
dadada 2020-08-03 09:53:27 +02:00
parent 38dc94bcf0
commit 20f052b6f6
No known key found for this signature in database
GPG key ID: EEB8D1CE62C4DFEA

View file

@ -45,7 +45,7 @@ in {
};
};
services.dokuwiki."site2.local" = {
aclUse = true;
usersFile = "/var/lib/dokuwiki/site2.local/users.auth.php";
superUser = "admin";
nginx = {
forceSSL = false;
@ -70,6 +70,15 @@ in {
machine.wait_for_open_port(80)
machine.succeed("curl -sSfL http://site1.local/ | grep 'DokuWiki'")
machine.fail("curl -sSfL 'http://site1.local/doku.php?do=login' | grep 'Login'")
machine.succeed("curl -sSfL http://site2.local/ | grep 'DokuWiki'")
machine.succeed("curl -sSfL 'http://site2.local/doku.php?do=login' | grep 'Login'")
machine.succeed(
"echo 'admin:$2y$10$ijdBQMzSVV20SrKtCna8gue36vnsbVm2wItAXvdm876sshI4uwy6S:Admin:admin@example.test:user' >> /var/lib/dokuwiki/site2.local/users.auth.php",
"curl -sSfL -d 'u=admin&p=password' --cookie-jar cjar 'http://site2.local/doku.php?do=login'",
"curl -sSfL --cookie cjar --cookie-jar cjar 'http://site2.local/doku.php?do=login' | grep 'Logged in as: <bdi>Admin</bdi>'",
)
'';
})