js.spec
js.spec copied to clipboard
Get error message `Error: Predicate condition of spec taskParams is null or undefined`
const {spec, valid} = require('js.spec');
const dateRange = spec.map("dateRange", {
startsFrom: spec.int,
endsBefore: spec.int,
});
const taskParams = spec.map("taskParams", {
timezone: spec.string,
dateRange,
condition: spec.options,
});
/*
const schema = spec.map("schema", {
taskId : spec.string,
reportType : spec.int,
callbackUrl: spec.string,
taskParams,
});
*/
console.log('valid(dateRange, {startsFrom:5, endsBefore 6})',
valid(dateRange, {startsFrom: 5, endsBefore: 6}));
console.log('valid(dateRange, {})', valid(dateRange, {}));
console.log('valid(dateRange, {startsFrom:"5", endsBefore 6})',
valid(dateRange, {startsFrom: "5", endsBefore: 6}));
console.log('valid(taskParams, {timezone: "tw", dateRange: {startsFrom:5, endsBefore: 6}, condition: {}})',
valid(taskParams, {timezone: "tw", dateRange: {startsFrom:5, endsBefore: 6}, condition: {}}));
console.log('valid(taskParams, {timezone: "tw", dateRange: {startsFrom:5, endsBefore: 6}, condition: 1})',
valid(taskParams, {timezone: "tw", dateRange: {startsFrom:5, endsBefore: 6}, condition: 1}));
console.log('valid(taskParams, {timezone: 2, dateRange: {startsFrom:5, endsBefore: 6}, condition: 1})',
valid(taskParams, {timezone: 2, dateRange: {startsFrom:5, endsBefore: 6}, condition: 1}));
Error: Predicate condition of spec taskParams is null or undefined, probably that's not your intention.
at u (/home/ubuntu/workspace/i2w/ce-backend-scheduler-report-generator-marketplace/node_modules/js.spec/dist/js.spec.js:1:883)
at t.undefinedPredicateWarning (/home/ubuntu/workspace/i2w/ce-backend-scheduler-report-generator-marketplace/node_modules/js.spec/dist/js.spec.js:1:2450)
at Object.t.default [as map] (/home/ubuntu/workspace/i2w/ce-backend-scheduler-report-generator-marketplace/node_modules/js.spec/dist/js.spec.js:1:26731)
at Object.<anonymous> (/home/ubuntu/workspace/i2w/ce-backend-scheduler-report-generator-marketplace/spec.js:13:25)
at Module._compile (module.js:635:30)
at Object.Module._extensions..js (module.js:646:10)
at Module.load (module.js:554:32)
at tryModuleLoad (module.js:497:12)
at Function.Module._load (module.js:489:3)
at Function.Module.runMain (module.js:676:10)
It's not possible to merge specs like this. See also https://github.com/prayerslayer/js.spec/issues/51 for an idea on how this might be built.