diff --git a/tests/strict.js b/tests/strict.js new file mode 100644 index 0000000..49ac41c --- /dev/null +++ b/tests/strict.js @@ -0,0 +1,68 @@ +"use strict"; + +var tester = require('./_lib/tester'); + +var Schema = require('./_lib/schema'); + +var sh1 = Schema.create().object(function (r, o) { + r('some_1'); + r('some_2'); + o('some_3'); +}); + +exports['valid object'] = tester({ + schema: sh1, + expect: true, + value: { + some_1: 1, + some_2: 2, + some_3: 3, + some_4: 3 + } +}); + +var sh2 = sh1.clone().strict(); +exports['invalid object'] = tester({ + schema: sh2, + vErr: { + rule: 'available_fields', + params: ['some_1', 'some_2', 'some_3'], + path: [] + }, + value: { + some_1: 1, + some_2: 2, + some_3: 3, + some_4: 3 + } +}); + + +var sh3 = sh1.clone().array(); +exports['valid array-object'] = tester({ + schema: sh3, + expect: true, + value: [{ + some_1: 1, + some_2: 2, + some_3: 3, + some_4: 3 + }] +}); + + +var sh4 = sh3.clone().strict(); +exports['invalid array-object'] = tester({ + schema: sh4, + vErr: { + rule: 'available_fields', + params: ['some_1', 'some_2', 'some_3'], + path: ['0'] + }, + value: [{ + some_1: 1, + some_2: 2, + some_3: 3, + some_4: 3 + }] +});