{ config, lib, pkgs, ... }:

with lib;

{
  config = {
    home.stateVersion = "22.05";

    programs.waybar = {
      package = config.lib.test.mkStubPackage { outPath = "@waybar@"; };
      enable = true;
      settings = [{
        modules-center = [ "test" ];
        modules = { "test" = { }; };
      }];
    };

    test.asserts.assertions.expected = [''
      The `programs.waybar.settings.[].modules` option has been removed.
      It is now possible to declare modules in the configuration without nesting them under the `modules` option.
    ''];

    nmt.script = ''
      assertPathNotExists home-files/.config/waybar/style.css
      assertFileContent \
        home-files/.config/waybar/config \
          ${
            builtins.toFile "waybar-deprecated-modules-option.json" ''
              [
                {
                  "modules-center": [
                    "test"
                  ],
                  "modules-left": [],
                  "modules-right": [],
                  "test": {}
                }
              ]
            ''
          }
    '';
  };
}
