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