{ name = "travelynx-prove-test-suite"; nodes.travelynx = { config, pkgs, ... }: { services.postgresql = { enable = true; ensureDatabases = [ "travelynx" ]; ensureUsers = [{ name = "travelynx"; ensureDBOwnership = true; }]; authentication = '' host all all ::1/127 trust ''; }; environment.etc."/travelynx".source = pkgs.travelynx; environment.etc."/travelynx.conf".text = '' { base_url => Mojo::URL->new('http://localhost'), cache => { schedule => './var/cache/travelynx/iris', realtime => './var/cache/travelynx/iris-rt', }, db => { host => 'localhost', port => 5432, database => 'travelynx', user => 'travelynx', }, hypnotoad => { accepts => 100, clients => 10, listen => [ 'http://127.0.0.1:8093' ], pid_file => '/tmp/travelynx.pid', workers => 2, spare => 2, }, mail => { disabled => 1, }, ref => { issues => 'https://github.com/derf/travelynx/issues', source => 'https://github.com/derf/travelynx', }, secrets => [ "secret" ], version => 'vm-test', }; ''; environment.systemPackages = [ pkgs.travelynx.perl ]; }; testScript = '' machine.start() machine.wait_for_unit("postgresql.service") machine.succeed("cp -r /etc/travelynx/* .") machine.succeed("chmod +w -R .") machine.succeed("cp /etc/travelynx.conf .") machine.succeed("./index.pl database migrate") # this executes travelynx's own test suite, which requires a working database # & networking, hence i didn't put it into the package's test phase # (also, it seems to be failing?) machine.succeed("prove") ''; }