at master 1.4 kB view raw
1{ pkgs, ... }: 2 3let 4 dataDir = "/var/lib/foobar"; 5 6in 7{ 8 name = "etebase-server"; 9 meta = with pkgs.lib.maintainers; { 10 maintainers = [ felschr ]; 11 }; 12 13 nodes.machine = 14 { pkgs, ... }: 15 { 16 services.etebase-server = { 17 inherit dataDir; 18 enable = true; 19 settings.global.secret_file = toString (pkgs.writeText "secret" "123456"); 20 }; 21 }; 22 23 testScript = '' 24 machine.wait_for_unit("etebase-server.service") 25 machine.wait_for_open_port(8001) 26 27 with subtest("Database & src-version were created"): 28 machine.wait_for_file("${dataDir}/src-version") 29 assert ( 30 "${pkgs.etebase-server}" 31 in machine.succeed("cat ${dataDir}/src-version") 32 ) 33 machine.wait_for_file("${dataDir}/db.sqlite3") 34 machine.wait_for_file("${dataDir}/static") 35 36 with subtest("Only allow access from allowed_hosts"): 37 machine.succeed("curl -sSfL http://0.0.0.0:8001/") 38 machine.fail("curl -sSfL http://127.0.0.1:8001/") 39 machine.fail("curl -sSfL http://localhost:8001/") 40 41 with subtest("Run tests"): 42 machine.succeed("etebase-server check") 43 machine.succeed("etebase-server test") 44 45 with subtest("Create superuser"): 46 machine.succeed( 47 "etebase-server createsuperuser --no-input --username admin --email root@localhost" 48 ) 49 ''; 50}