watson: add module

Watson is a CLI for tracking your time.

Two unit tests were added to validate the module behavior for an empty
configuration and the example configuration.
This commit is contained in:
polykernel 2022-01-01 18:22:05 -05:00 committed by Robert Helgesson
parent 32da35f65b
commit d469b9bf8a
No known key found for this signature in database
GPG key ID: 36BDAA14C2797E89
9 changed files with 183 additions and 0 deletions

View file

@ -0,0 +1,4 @@
{
watson-empty-settings = ./empty-settings.nix;
watson-example-settings = ./example-settings.nix;
}

View file

@ -0,0 +1,19 @@
{ config, lib, pkgs, ... }:
with lib;
{
programs.watson = {
enable = true;
package = config.lib.test.mkStubPackage { };
};
nmt.script = let
configDir = if pkgs.stdenv.hostPlatform.isDarwin then
"home-files/Library/Application Support"
else
"home-files/.config";
in ''
assertPathNotExists ${configDir}/watson/config
'';
}

View file

@ -0,0 +1,14 @@
[backend]
token=yourapitoken
url=https://api.crick.fr
[options]
date_format=%Y.%m.%d
log_current=false
pager=true
report_current=false
reverse_log=true
stop_on_restart=false
stop_on_start=true
time_format=%H:%M:%S%z
week_start=monday

View file

@ -0,0 +1,40 @@
{ config, lib, pkgs, ... }:
with lib;
{
programs.watson = {
enable = true;
package = config.lib.test.mkStubPackage { };
settings = {
backend = {
url = "https://api.crick.fr";
token = "yourapitoken";
};
options = {
stop_on_start = true;
stop_on_restart = false;
date_format = "%Y.%m.%d";
time_format = "%H:%M:%S%z";
week_start = "monday";
log_current = false;
pager = true;
report_current = false;
reverse_log = true;
};
};
};
nmt.script = let
configDir = if pkgs.stdenv.hostPlatform.isDarwin then
"home-files/Library/Application Support"
else
"home-files/.config";
in ''
assertFileContent \
"${configDir}/watson/config" \
${./example-settings-expected.ini}
'';
}