summaryrefslogtreecommitdiffstats
path: root/nixos/tests/calibre-web.nix
blob: 27080e5626ba3244fdd799d80b970bb1da6beab6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
{ lib, ... }:

let
  port = 3142;
  defaultPort = 8083;
  libraryPath = "/var/lib/test-books";
in
{
  name = "calibre-web";
  meta.maintainers = with lib.maintainers; [ pborzenkov ];

  nodes = {
    customized =
      { pkgs, ... }:
      {
        services.calibre-web = {
          enable = true;
          listen.port = port;
          options = {
            calibreLibrary = libraryPath;
            reverseProxyAuth = {
              enable = true;
              header = "X-User";
            };
          };
        };
        environment.systemPackages = [ pkgs.calibre ];
      };
  };
  testScript = ''
    start_all()

    customized.succeed(
        "mkdir -p ${libraryPath} && calibredb --library-path ${libraryPath} add -e --title test-book"
    )
    customized.succeed("systemctl restart calibre-web")
    customized.wait_for_unit("calibre-web.service")
    customized.wait_for_open_port(${toString port})
    customized.succeed(
        "curl --fail -H X-User:admin 'http://localhost:${toString port}' | grep test-book"
    )
  '';
}