diff --git a/flake.nix b/flake.nix index 58ebd39580..83c785ddd5 100644 --- a/flake.nix +++ b/flake.nix @@ -59,8 +59,8 @@ config.allowUnfree = true; }; in { - checks = - (import ./tests { + checks = { + tests = import ./tests { inherit pkgs; inherit (pkgs) lib; # Some nixvim supported plugins require the use of unfree packages. @@ -75,27 +75,26 @@ config = configuration; }; }; - }) - // { - lib-tests = import ./tests/lib-tests.nix { - inherit (pkgs) pkgs lib; - }; - extra-args-tests = import ./tests/extra-args.nix { - inherit pkgs; - inherit (self.legacyPackages.${system}) makeNixvimWithModule; - }; - pre-commit-check = pre-commit-hooks.lib.${system}.run { - src = ./.; - hooks = { - alejandra = { - enable = true; - excludes = ["plugins/_sources"]; - }; - statix.enable = true; + }; + lib-tests = import ./tests/lib-tests.nix { + inherit (pkgs) pkgs lib; + }; + extra-args-tests = import ./tests/extra-args.nix { + inherit pkgs; + inherit (self.legacyPackages.${system}) makeNixvimWithModule; + }; + pre-commit-check = pre-commit-hooks.lib.${system}.run { + src = ./.; + hooks = { + alejandra = { + enable = true; + excludes = ["plugins/_sources"]; }; - settings.statix.ignore = ["plugins/lsp/language-servers/rust-analyzer-config.nix"]; + statix.enable = true; }; + settings.statix.ignore = ["plugins/lsp/language-servers/rust-analyzer-config.nix"]; }; + }; devShells = { default = pkgs.mkShell { inherit (self.checks.${system}.pre-commit-check) shellHook; diff --git a/tests/default.nix b/tests/default.nix index 6ad483df16..404b231a8d 100644 --- a/tests/default.nix +++ b/tests/default.nix @@ -12,18 +12,29 @@ inherit lib pkgs; root = ./test-sources; }; -in + + exampleFiles = { + example = let + config = import ../example.nix {inherit pkgs;}; + in + builtins.removeAttrs config.programs.nixvim [ + # This is not available to standalone modules, only HM & NixOS Modules + "enable" + # This is purely an example, it does not reflect a real usage + "extraConfigLua" + "extraConfigVim" + ]; + }; + # We attempt to build & execute all configurations - builtins.mapAttrs mkTestDerivation (testFiles - // { - example = let - config = import ../example.nix {inherit pkgs;}; - in - builtins.removeAttrs config.programs.nixvim [ - # This is not available to standalone modules, only HM & NixOS Modules - "enable" - # This is purely an example, it does not reflect a real usage - "extraConfigLua" - "extraConfigVim" - ]; - }) + derivationList = + pkgs.lib.mapAttrsToList + ( + name: path: { + inherit name; + path = mkTestDerivation name path; + } + ) + (testFiles // exampleFiles); +in + pkgs.linkFarm "nixvim-tests" derivationList