Nested jsonnet validators
The current validators do not work as nested validators, e.g.:
local test = import 'github.com/yugui/jsonnetunit/jsonnetunit/test.libsonnet';
local validator = import 'validator.libsonnet';
test.suite({
test_nested_validator_fail: {
local myvalidator = validator.new({
first_level: validator.optional(
validator.new({
myint: validator.number,
})
)
}),
local value = { first_level: {} },
actual: myvalidator._validationMessages(value),
expect: ['field first_level.myint is required']
},
})
scripts/jsonnet_test.sh libsonnet/utils/nested_validator_test.jsonnet
# libsonnet/utils/nested_validator_test.jsonnet
RUNTIME ERROR: Unexpected type object, expected function
libsonnet/utils/validator.libsonnet:81:22-34 thunk <result> from <function <anonymous>>
libsonnet/utils/validator.libsonnet:82:10-16 function <anonymous>
libsonnet/utils/validator.libsonnet:16:36-60 thunk <failureMessage> from <function <anonymous>>
libsonnet/utils/validator.libsonnet:17:16-30 function <anonymous>
libsonnet/utils/validator.libsonnet:(6:5)-(25:6) function <validateNested>
libsonnet/utils/validator.libsonnet:32:7-45 function <anonymous>
libsonnet/utils/nested_validator_test.jsonnet:15:13-47 object <anonymous>
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/test.libsonnet:7:46-57 thunk from <object <anonymous>>
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/std_matchers.libsonnet:4:14-20 object <anonymous>
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/matcher.libsonnet:6:30-44 function <anonymous>
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/test.libsonnet:34:11-49 thunk <failures> from <object <anonymous>>
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/test.libsonnet:(31:22)-(35:6)
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/test.libsonnet:36:19-27 thunk from <object <anonymous>>
/Users/hercules/GitLab/runbooks/vendor/github.com/yugui/jsonnetunit/jsonnetunit/test.libsonnet:36:8-28 object <anonymous>
Field "verify"
During manifestation
# libsonnet/utils/nested_validator_test.jsonnet failed
Is it a typebug or typefeature? Is it bending jsonnet too much?