llm-ls: cleanup (#372936)
[NixPkgs.git] / nixos / tests / atuin.nix
blobddaeedf10dca4dc5f4beb2510539cfaa6b375ba8
1 { lib, ... }:
3 let
4   testPort = 8888;
5   testUser = "testerman";
6   testPass = "password";
7   testEmail = "test.testerman@test.com";
8 in
10   name = "atuin";
11   meta.maintainers = with lib.maintainers; [ devusb ];
13   defaults =
14     { pkgs, ... }:
15     {
16       environment.systemPackages = [
17         pkgs.atuin
18       ];
19     };
21   nodes = {
22     server =
23       { ... }:
24       {
25         services.postgresql.enable = true;
27         services.atuin = {
28           enable = true;
29           port = testPort;
30           host = "0.0.0.0";
31           openFirewall = true;
32           openRegistration = true;
33         };
34       };
36     client = { ... }: { };
38   };
40   testScript =
41     { nodes, ... }:
42     #python
43     ''
44       start_all()
46       # wait for atuin server startup
47       server.wait_for_unit("atuin.service")
48       server.wait_for_open_port(${toString testPort})
50       # configure atuin client on server node
51       server.execute("mkdir -p ~/.config/atuin")
52       server.execute("echo 'sync_address = \"http://localhost:${toString testPort}\"' > ~/.config/atuin/config.toml")
54       # register with atuin server on server node
55       server.succeed("atuin register -u ${testUser} -p ${testPass} -e ${testEmail}")
56       _, key = server.execute("atuin key")
58       # store test record in atuin server and sync
59       server.succeed("ATUIN_SESSION=$(atuin uuid) atuin history start 'shazbot'")
60       server.succeed("ATUIN_SESSION=$(atuin uuid) atuin sync")
62       # configure atuin client on client node
63       client.execute("mkdir -p ~/.config/atuin")
64       client.execute("echo 'sync_address = \"http://server:${toString testPort}\"' > ~/.config/atuin/config.toml")
66       # log in to atuin server on client node
67       client.succeed(f"atuin login -u ${testUser} -p ${testPass} -k \"{key}\"")
69       # pull records from atuin server
70       client.succeed("atuin sync -f")
72       # check for test record
73       client.succeed("ATUIN_SESSION=$(atuin uuid) atuin history list | grep shazbot")
74     '';