mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-23 07:23:20 +00:00
49 lines
1.5 KiB
Nix
49 lines
1.5 KiB
Nix
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")
|
|
'';
|
|
}
|
|
)
|