at master 1.4 kB view raw
1{ ... }: 2{ 3 name = "taskchampion-sync-server"; 4 5 nodes = { 6 server = { 7 services.taskchampion-sync-server.enable = true; 8 services.taskchampion-sync-server.host = "0.0.0.0"; 9 services.taskchampion-sync-server.openFirewall = true; 10 }; 11 client = 12 { pkgs, ... }: 13 { 14 environment.systemPackages = [ pkgs.taskwarrior3 ]; 15 }; 16 }; 17 testScript = 18 { nodes, ... }: 19 let 20 cfg = nodes.server.services.taskchampion-sync-server; 21 port = builtins.toString cfg.port; 22 # Generated with uuidgen 23 uuid = "bf01376e-04a4-435a-9263-608567531af3"; 24 password = "nixos-test"; 25 in 26 '' 27 # Explicitly start the VMs so that we don't accidentally start newServer 28 server.start() 29 client.start() 30 31 server.wait_for_unit("taskchampion-sync-server.service") 32 server.wait_for_open_port(${port}) 33 34 # See man task-sync(5) 35 client.succeed("mkdir ~/.task") 36 client.succeed("touch ~/.taskrc") 37 client.succeed("echo sync.server.origin=http://server:${port} >> ~/.taskrc") 38 client.succeed("echo sync.server.client_id=${uuid} >> ~/.taskrc") 39 client.succeed("echo sync.encryption_secret=${password} >> ~/.taskrc") 40 client.succeed("task add hello world") 41 client.succeed("task sync") 42 43 # Useful for debugging 44 client.copy_from_vm("/root/.task", "client") 45 server.copy_from_vm("${cfg.dataDir}", "server") 46 ''; 47}