{ config, pkgs, ... }:

{
  services.darkman = {
    enable = true;
    package = config.lib.test.mkStubPackage {
      name = "darkman";
      outPath = "@darkman@";
    };

    settings.lat = 50.8;
    settings.lng = 4.4;
    settings.usegeoclue = true;

    darkModeScripts.color-scheme-dark = ''
      dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"
    '';

    lightModeScripts.color-scheme-light = pkgs.writeScript "my-python-script" ''
      #!${pkgs.python}/bin/python

      print('Do something!')
    '';
  };

  test.stubs.python = { };

  nmt.script = ''
    serviceFile=$(normalizeStorePaths home-files/.config/systemd/user/darkman.service)
    darkModeScriptFile=$(normalizeStorePaths home-files/.local/share/dark-mode.d/color-scheme-dark)
    lightModeScriptFile=$(normalizeStorePaths home-files/.local/share/light-mode.d/color-scheme-light)

    assertFileExists $serviceFile
    assertFileContent $serviceFile ${
      builtins.toFile "expected" ''
        [Install]
        WantedBy=graphical-session.target

        [Service]
        BusName=nl.whynothugo.darkman
        ExecStart=@darkman@/bin/darkman run
        Restart=on-failure
        Slice=background.slice
        TimeoutStopSec=15
        Type=dbus

        [Unit]
        BindsTo=graphical-session.target
        Description=Darkman system service
        Documentation=man:darkman(1)
        PartOf=graphical-session.target
        X-Restart-Triggers=/nix/store/00000000000000000000000000000000-darkman-config.yaml
      ''
    }
    assertFileContent $darkModeScriptFile ${
      builtins.toFile "expected" ''
        #!/nix/store/00000000000000000000000000000000-bash/bin/bash
        dconf write /org/gnome/desktop/interface/color-scheme "'prefer-dark'"

      ''
    }
    assertFileContent $lightModeScriptFile ${
      builtins.toFile "expected" ''
        #!@python@/bin/python

        print('Do something!')
      ''
    }
  '';
}