at 23.05-pre 1.3 kB view raw
1import ./make-test-python.nix ( 2 { pkgs, lib, ... }: 3 { 4 name = "engelsystem"; 5 meta = with pkgs.lib.maintainers; { 6 maintainers = [ talyz ]; 7 }; 8 9 nodes.engelsystem = 10 { ... }: 11 { 12 services.engelsystem = { 13 enable = true; 14 domain = "engelsystem"; 15 createDatabase = true; 16 }; 17 networking.firewall.allowedTCPPorts = [ 80 443 ]; 18 environment.systemPackages = with pkgs; [ 19 xmlstarlet 20 libxml2 21 ]; 22 }; 23 24 testScript = '' 25 engelsystem.start() 26 engelsystem.wait_for_unit("phpfpm-engelsystem.service") 27 engelsystem.wait_until_succeeds("curl engelsystem/login -sS -f") 28 engelsystem.succeed( 29 "curl engelsystem/login -sS -f -c cookie | xmllint -html -xmlout - >login" 30 ) 31 engelsystem.succeed( 32 "xml sel -T -t -m \"html/head/meta[@name='csrf-token']\" -v @content login >token" 33 ) 34 engelsystem.succeed( 35 "curl engelsystem/login -sS -f -b cookie -F 'login=admin' -F 'password=asdfasdf' -F '_token=<token' -L | xmllint -html -xmlout - >news" 36 ) 37 engelsystem.succeed( 38 "test 'News - Engelsystem' = \"$(xml sel -T -t -c html/head/title news)\"" 39 ) 40 ''; 41 })