From 7262208a4c47cb6ed9f3854532352cc6df74909f Mon Sep 17 00:00:00 2001 From: DavHau Date: Wed, 9 Aug 2023 16:05:16 +0200 Subject: [PATCH] clanLib.jsonschema: move tests from pkgs/clan-cli --- flake.nix | 1 + lib/default.nix | 2 +- lib/flake-module.nix | 3 ++ .../default.nix} | 0 .../jsonschema}/example-data.json | 0 .../jsonschema}/example-interface.nix | 0 .../jsonschema}/example-schema.json | 0 lib/jsonschema/flake-module.nix | 29 +++++++++++++++++++ .../tests/config => lib/jsonschema}/test.nix | 2 +- .../jsonschema}/test_parseOption.nix | 2 +- .../jsonschema}/test_parseOptions.nix | 2 +- pkgs/clan-cli/flake-module.nix | 25 +--------------- 12 files changed, 38 insertions(+), 28 deletions(-) rename lib/{jsonschema.nix => jsonschema/default.nix} (100%) rename {pkgs/clan-cli/tests/config => lib/jsonschema}/example-data.json (100%) rename {pkgs/clan-cli/tests/config => lib/jsonschema}/example-interface.nix (100%) rename {pkgs/clan-cli/tests/config => lib/jsonschema}/example-schema.json (100%) create mode 100644 lib/jsonschema/flake-module.nix rename {pkgs/clan-cli/tests/config => lib/jsonschema}/test.nix (76%) rename {pkgs/clan-cli/tests/config => lib/jsonschema}/test_parseOption.nix (98%) rename {pkgs/clan-cli/tests/config => lib/jsonschema}/test_parseOptions.nix (87%) diff --git a/flake.nix b/flake.nix index c52398e1..50d88a32 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,7 @@ "aarch64-linux" ]; imports = [ + # ./checks/flake-module.nix ./devShell.nix ./formatter.nix ./templates/flake-module.nix diff --git a/lib/default.nix b/lib/default.nix index 292d4602..855c3d75 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -12,5 +12,5 @@ ) (builtins.readDir folder); - jsonschema = import ./jsonschema.nix { inherit lib; }; + jsonschema = import ./jsonschema { inherit lib; }; } diff --git a/lib/flake-module.nix b/lib/flake-module.nix index 38d84a83..2738bef8 100644 --- a/lib/flake-module.nix +++ b/lib/flake-module.nix @@ -1,5 +1,8 @@ { lib , ... }: { + imports = [ + ./jsonschema/flake-module.nix + ]; flake.lib = import ./default.nix { inherit lib; }; } diff --git a/lib/jsonschema.nix b/lib/jsonschema/default.nix similarity index 100% rename from lib/jsonschema.nix rename to lib/jsonschema/default.nix diff --git a/pkgs/clan-cli/tests/config/example-data.json b/lib/jsonschema/example-data.json similarity index 100% rename from pkgs/clan-cli/tests/config/example-data.json rename to lib/jsonschema/example-data.json diff --git a/pkgs/clan-cli/tests/config/example-interface.nix b/lib/jsonschema/example-interface.nix similarity index 100% rename from pkgs/clan-cli/tests/config/example-interface.nix rename to lib/jsonschema/example-interface.nix diff --git a/pkgs/clan-cli/tests/config/example-schema.json b/lib/jsonschema/example-schema.json similarity index 100% rename from pkgs/clan-cli/tests/config/example-schema.json rename to lib/jsonschema/example-schema.json diff --git a/lib/jsonschema/flake-module.nix b/lib/jsonschema/flake-module.nix new file mode 100644 index 00000000..26fc76cf --- /dev/null +++ b/lib/jsonschema/flake-module.nix @@ -0,0 +1,29 @@ +{ + perSystem = { pkgs, self', ... }: { + checks = { + + # check if the `clan config` example jsonschema and data is valid + lib-jsonschema-example-valid = pkgs.runCommand "lib-jsonschema-example-valid" { } '' + echo "Checking that example-schema.json is valid" + ${pkgs.check-jsonschema}/bin/check-jsonschema \ + --check-metaschema ${./.}/example-schema.json + + echo "Checking that example-data.json is valid according to example-schema.json" + ${pkgs.check-jsonschema}/bin/check-jsonschema \ + --schemafile ${./.}/example-schema.json \ + ${./.}/example-data.json + + touch $out + ''; + + # check if the `clan config` nix jsonschema converter unit tests succeed + lib-jsonschema-nix-unit-tests = pkgs.runCommand "lib-jsonschema-nix-unit-tests" { } '' + export NIX_PATH=nixpkgs=${pkgs.path} + ${self'.packages.nix-unit}/bin/nix-unit \ + ${./.}/test.nix \ + --eval-store $(realpath .) + touch $out + ''; + }; + }; +} diff --git a/pkgs/clan-cli/tests/config/test.nix b/lib/jsonschema/test.nix similarity index 76% rename from pkgs/clan-cli/tests/config/test.nix rename to lib/jsonschema/test.nix index 8a39ed24..34e05274 100644 --- a/pkgs/clan-cli/tests/config/test.nix +++ b/lib/jsonschema/test.nix @@ -1,6 +1,6 @@ # run these tests via `nix-unit ./test.nix` { lib ? (import { }).lib -, slib ? import ../../clan_cli/config/schema-lib.nix { inherit lib; } +, slib ? import ./. { inherit lib; } }: { parseOption = import ./test_parseOption.nix { inherit lib slib; }; diff --git a/pkgs/clan-cli/tests/config/test_parseOption.nix b/lib/jsonschema/test_parseOption.nix similarity index 98% rename from pkgs/clan-cli/tests/config/test_parseOption.nix rename to lib/jsonschema/test_parseOption.nix index 7ea92763..7adb3d66 100644 --- a/pkgs/clan-cli/tests/config/test_parseOption.nix +++ b/lib/jsonschema/test_parseOption.nix @@ -1,7 +1,7 @@ # tests for the nixos options to jsonschema converter # run these tests via `nix-unit ./test.nix` { lib ? (import { }).lib -, slib ? import ../../../../lib/jsonschema.nix { inherit lib; } +, slib ? import ./. { inherit lib; } }: let description = "Test Description"; diff --git a/pkgs/clan-cli/tests/config/test_parseOptions.nix b/lib/jsonschema/test_parseOptions.nix similarity index 87% rename from pkgs/clan-cli/tests/config/test_parseOptions.nix rename to lib/jsonschema/test_parseOptions.nix index 14b8d31a..c635286d 100644 --- a/pkgs/clan-cli/tests/config/test_parseOptions.nix +++ b/lib/jsonschema/test_parseOptions.nix @@ -1,7 +1,7 @@ # tests for the nixos options to jsonschema converter # run these tests via `nix-unit ./test.nix` { lib ? (import { }).lib -, slib ? import ../../../../lib/jsonschema.nix { inherit lib; } +, slib ? import ./. { inherit lib; } }: let evaledOptions = diff --git a/pkgs/clan-cli/flake-module.nix b/pkgs/clan-cli/flake-module.nix index 4a037034..30581d2e 100644 --- a/pkgs/clan-cli/flake-module.nix +++ b/pkgs/clan-cli/flake-module.nix @@ -27,30 +27,7 @@ ## End optional dependencies }; - checks = self'.packages.clan-cli.tests // { - # check if the `clan config` example jsonschema and data is valid - clan-config-example-schema-valid = pkgs.runCommand "clan-config-example-schema-valid" { } '' - echo "Checking that example-schema.json is valid" - ${pkgs.check-jsonschema}/bin/check-jsonschema \ - --check-metaschema ${./.}/tests/config/example-schema.json - - echo "Checking that example-data.json is valid according to example-schema.json" - ${pkgs.check-jsonschema}/bin/check-jsonschema \ - --schemafile ${./.}/tests/config/example-schema.json \ - ${./.}/tests/config/example-data.json - - touch $out - ''; - - # check if the `clan config` nix jsonschema converter unit tests succeed - clan-config-nix-unit-tests = pkgs.runCommand "clan-edit-unit-tests" { } '' - export NIX_PATH=nixpkgs=${pkgs.path} - ${self'.packages.nix-unit}/bin/nix-unit \ - ${./.}/tests/config/test.nix \ - --eval-store $(realpath .) - touch $out - ''; - }; + checks = self'.packages.clan-cli.tests; }; }