# tests for the nixos options to jsonschema converter # run these tests via `nix-unit ./test.nix` { lib ? (import { }).lib, slib ? import ./. { inherit lib; }, }: let evaledOptions = let evaledConfig = lib.evalModules { modules = [ ./example-interface.nix ]; }; in evaledConfig.options; in { testParseOptions = { expr = slib.parseOptions evaledOptions; expected = builtins.fromJSON (builtins.readFile ./example-schema.json); }; testParseNestedOptions = let evaled = lib.evalModules { modules = [ { options.foo.bar = lib.mkOption { type = lib.types.bool; }; } ]; }; in { expr = slib.parseOptions evaled.options; expected = { properties = { foo = { properties = { bar = { type = "boolean"; }; }; required = [ "bar" ]; type = "object"; }; }; type = "object"; }; }; }