{ pkgs, ... }:
let
  inherit (pkgs.stdenv.hostPlatform) isDarwin;

  path = if isDarwin then
    "Library/Application Support/rbw/config.json"
  else
    ".config/rbw/config.json";

  expected = pkgs.writeText "rbw-expected.json" ''
    {
      "base_url": "bitwarden.example.com",
      "email": "name@example.com",
      "identity_url": "identity.example.com",
      "lock_timeout": 300,
      "pinentry": "@pinentry-gnome3@/bin/pinentry"
    }
  '';
in {
  config = {
    programs.rbw = {
      enable = true;
      settings = {
        email = "name@example.com";
        base_url = "bitwarden.example.com";
        identity_url = "identity.example.com";
        lock_timeout = 300;
        pinentry = "gnome3";
      };
    };

    nixpkgs.overlays = [ (import ./overlay.nix) ];

    nmt.script = ''
      assertFileExists home-files/${path}
      assertFileContent home-files/${path} '${expected}'
    '';
  };
}