import ./make-test-python.nix ( { ... }: { name = "taskchampion-sync-server"; nodes = { server = { services.taskchampion-sync-server.enable = true; services.taskchampion-sync-server.openFirewall = true; }; client = { pkgs, ... }: { environment.systemPackages = [ pkgs.taskwarrior3 ]; }; }; testScript = { nodes, ... }: let cfg = nodes.server.services.taskchampion-sync-server; port = builtins.toString cfg.port; # Generated with uuidgen uuid = "bf01376e-04a4-435a-9263-608567531af3"; password = "nixos-test"; in '' # Explicitly start the VMs so that we don't accidentally start newServer server.start() client.start() server.wait_for_unit("taskchampion-sync-server.service") server.wait_for_open_port(${port}) # See man task-sync(5) client.succeed("mkdir ~/.task") client.succeed("touch ~/.taskrc") client.succeed("echo sync.server.origin=http://server:${port} >> ~/.taskrc") client.succeed("echo sync.server.client_id=${uuid} >> ~/.taskrc") client.succeed("echo sync.encryption_secret=${password} >> ~/.taskrc") client.succeed("task add hello world") client.succeed("task sync") # Useful for debugging client.copy_from_vm("/root/.task", "client") server.copy_from_vm("${cfg.dataDir}", "server") ''; } )