UNPKG

3.94 kBJavaScriptView Raw
1/**
2 * Created by bdunn on 18/09/2014.
3 */
4var Validator = require('../lib/modelValidator');
5var validator = new Validator();
6
7module.exports.validationTests = {
8 arrayTypeIgnored: function(test) {
9 var data = {
10 sample: [ "test", "face", "tribble" ]
11 };
12 var model = {
13 required: [],
14 properties: {
15 sample: {
16 type: 'array',
17 items: {
18 type: "string"
19 }
20 }
21 }
22 };
23
24 var errors = validator.validate(data, model);
25
26 test.expect(1);
27 test.ok(errors.valid);
28
29 test.done();
30 },
31 arrayNotDefined: function(test) {
32 var data = {
33 sample: [ "test", "face", "tribble" ]
34 };
35 var model = {
36 required: [],
37 properties: {
38 name: {
39 type: "string"
40 }
41 }
42 };
43
44 var errors = validator.validate(data, model);
45
46 test.expect(1);
47 test.ok(errors.valid);
48
49 test.done();
50 },
51 arrayTypeRequired: function(test) {
52 var data = {
53 sample: [ "test", "face", "tribble" ]
54 };
55 var model = {
56 required: [ 'sample' ],
57 properties: {
58 sample: {
59 type: 'array',
60 items: {
61 type: "string"
62 }
63 }
64 }
65 };
66
67 var errors = validator.validate(data, model);
68
69 test.expect(1);
70 test.ok(errors.valid);
71
72 test.done();
73 },
74 missingArrayTypeRequired: function(test) {
75 var data = {
76 name: [ "test", "face", "tribble" ]
77 };
78 var model = {
79 required: [ 'sample' ],
80 properties: {
81 sample: {
82 type: 'array',
83 items: {
84 type: "string"
85 }
86 }
87 }
88 };
89
90 var errors = validator.validate(data, model);
91
92 test.expect(2);
93 test.ok(!errors.valid);
94 test.ok(errors.errors[0].message === 'sample is a required field');
95
96 test.done();
97 },
98 arrayValidationFails: function(test) {
99 var data = {
100 sample: [ 1, "2", "tribble" ]
101 };
102 var model = {
103 required: [ 'sample' ],
104 properties: {
105 sample: {
106 type: 'array',
107 items: {
108 type: "integer"
109 }
110 }
111 }
112 };
113
114 var errors = validator.validate(data, model);
115
116 test.expect(1);
117 test.ok(!errors.valid);
118
119 test.done();
120 },
121 arrayRefValidationFails: function(test) {
122 var data = {
123 sample: [ { id: 1, name: 'test'}, "2", "tribble" ]
124 };
125 var models = {
126 model: {
127 required: [ 'sample' ],
128 properties: {
129 sample: {
130 type: 'array',
131 items: {
132 $ref: "refModel"
133 }
134 }
135 }
136 },
137 refModel: {
138 required: [ 'id' ],
139 properties: {
140 id: {
141 type: "integer"
142 },
143 name: {
144 type: "string"
145 }
146 }
147 }
148 };
149
150 var errors = validator.validate(data, models["model"], models);
151
152 test.expect(1);
153 test.ok(!errors.valid);
154
155 test.done();
156 }
157};
\No newline at end of file