diff options
Diffstat (limited to 'nixos/tests/web-apps/immich.nix')
-rw-r--r-- | nixos/tests/web-apps/immich.nix | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/nixos/tests/web-apps/immich.nix b/nixos/tests/web-apps/immich.nix new file mode 100644 index 0000000000000..f03b9290f7a59 --- /dev/null +++ b/nixos/tests/web-apps/immich.nix @@ -0,0 +1,51 @@ +import ../make-test-python.nix ( + { ... }: + { + name = "immich-nixos"; + + nodes.machine = + { pkgs, ... }: + { + # These tests need a little more juice + virtualisation = { + cores = 2; + memorySize = 2048; + diskSize = 4096; + }; + + environment.systemPackages = with pkgs; [ immich-cli ]; + + services.immich = { + enable = true; + environment.IMMICH_LOG_LEVEL = "verbose"; + }; + }; + + testScript = '' + import json + + machine.wait_for_unit("immich-server.service") + + machine.wait_for_open_port(3001) # Server + machine.wait_for_open_port(3003) # Machine learning + machine.succeed("curl --fail http://localhost:3001/") + + machine.succeed(""" + curl -H 'Content-Type: application/json' --data '{ "email": "test@example.com", "name": "Admin", "password": "admin" }' -X POST http://localhost:3001/api/auth/admin-sign-up + """) + res = machine.succeed(""" + curl -H 'Content-Type: application/json' --data '{ "email": "test@example.com", "password": "admin" }' -X POST http://localhost:3001/api/auth/login + """) + token = json.loads(res)['accessToken'] + + res = machine.succeed(""" + curl -H 'Content-Type: application/json' -H 'Cookie: immich_access_token=%s' --data '{ "name": "API Key", "permissions": ["all"] }' -X POST http://localhost:3001/api/api-keys + """ % token) + key = json.loads(res)['secret'] + + machine.succeed(f"immich login http://localhost:3001/api {key}") + res = machine.succeed("immich server-info") + print(res) + ''; + } +) |