Skip to content

Commit b1f399f

Browse files
committed
tests - simplified by verifying results by returned value instead of validator properties
1 parent e75be37 commit b1f399f

File tree

9 files changed

+90
-82
lines changed

9 files changed

+90
-82
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22
.DS_Store
33
node_modules/
44
npm-debug.log
5+
typings
56
.idea
67
typings/

README.md

+6
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,9 @@ To run tests
127127
mocha test
128128
```
129129

130+
## Roadmap
131+
132+
+ Simplify ValidationFor
133+
+ Shared validation groups
134+
+ Depedency injection
135+

src/validation/rules.ts

+1
Original file line numberDiff line numberDiff line change
@@ -674,6 +674,7 @@ module Validation {
674674
}
675675

676676

677+
677678
/**
678679
*
679680
* @ngdoc object

test/validation/customValidators.ts

+8-10
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,10 @@ describe('custom validators', function () {
164164
var result = this.Validator.Validate(this.Data);
165165
var promiseResult = this.Validator.ValidateAsync(this.Data);
166166

167-
var errorInfo = this.Validator.ValidationResult;
168167
promiseResult.then(function (response) {
169168

170169
//verify
171-
expect(errorInfo.HasErrors).to.equal(false);
170+
expect(response.HasErrors).to.equal(false);
172171

173172
done();
174173

@@ -185,14 +184,13 @@ describe('custom validators', function () {
185184
var result = this.Validator.Validate(this.Data);
186185
var promiseResult = this.Validator.ValidateAsync(this.Data);
187186

188-
var selfValidator = this.Validator;
189187
promiseResult.then(function (response) {
190188

191-
selfValidator.ValidationResult.LogErrors();
189+
response.LogErrors();
192190

193191
//verify
194-
expect(selfValidator.ValidationResult.HasErrors).to.equal(true);
195-
expect(selfValidator.ValidationResult.ErrorCount).to.equal(2);
192+
expect(response.HasErrors).to.equal(true);
193+
expect(response.ErrorCount).to.equal(2);
196194

197195
done();
198196

@@ -232,7 +230,7 @@ describe('custom validators', function () {
232230
var result = this.Validator.Validate(this.Data);
233231

234232
//verify
235-
expect(this.Validator.ValidationResult.HasErrors).to.equal(false);
233+
expect(result.HasErrors).to.equal(false);
236234

237235
});
238236

@@ -246,9 +244,9 @@ describe('custom validators', function () {
246244
var result = this.Validator.Validate(this.Data);
247245

248246
//verify
249-
this.Validator.ValidationResult.LogErrors();
250-
expect(this.Validator.ValidationResult.HasErrors).to.equal(true);
251-
expect(this.Validator.ValidationResult.ErrorCount).to.equal(2);
247+
result.LogErrors();
248+
expect(result.HasErrors).to.equal(true);
249+
expect(result.ErrorCount).to.equal(2);
252250

253251
});
254252
});

test/validation/rules.ts

+19-16
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ describe('basic validation rules', function () {
4444
it('fill correct data - no errors', function () {
4545

4646
//when
47-
this.Data.FirstName = "Jonh";
47+
this.Data.FirstName = "John";
4848
this.Data.LastName = "Smith";
4949

5050
//excercise
@@ -57,10 +57,10 @@ describe('basic validation rules', function () {
5757
expect(this.PersonValidator.ValidationResult.HasErrors).to.equal(false);
5858

5959
//validator properties enables to check specific rule errors
60-
expect(this.PersonValidator.Rules["FirstName"].ValidationFailures["required"].HasError).to.equal(false);
61-
expect(this.PersonValidator.Rules["FirstName"].ValidationFailures["maxlength"].HasError).to.equal(false);
62-
expect(this.PersonValidator.Rules["LastName"].ValidationFailures["required"].HasError).to.equal(false);
63-
expect(this.PersonValidator.Rules["LastName"].ValidationFailures["maxlength"].HasError).to.equal(false);
60+
expect(result.Errors["FirstName"].ValidationFailures["required"].HasError).to.equal(false);
61+
expect(result.Errors["FirstName"].ValidationFailures["maxlength"].HasError).to.equal(false);
62+
expect(result.Errors["LastName"].ValidationFailures["required"].HasError).to.equal(false);
63+
expect(result.Errors["LastName"].ValidationFailures["maxlength"].HasError).to.equal(false);
6464

6565
});
6666

@@ -80,10 +80,10 @@ describe('basic validation rules', function () {
8080
expect(this.PersonValidator.ValidationResult.HasErrors).to.equal(true);
8181

8282
//validator properties enables to check specific rule errors
83-
expect(this.PersonValidator.Rules["FirstName"].ValidationFailures["required"].HasError).to.equal(true);
84-
expect(this.PersonValidator.Rules["FirstName"].ValidationFailures["maxlength"].HasError).to.equal(false);
85-
expect(this.PersonValidator.Rules["LastName"].ValidationFailures["required"].HasError).to.equal(false);
86-
expect(this.PersonValidator.Rules["LastName"].ValidationFailures["maxlength"].HasError).to.equal(true);
83+
expect(result.Errors["FirstName"].ValidationFailures["required"].HasError).to.equal(true);
84+
expect(result.Errors["FirstName"].ValidationFailures["maxlength"].HasError).to.equal(false);
85+
expect(result.Errors["LastName"].ValidationFailures["required"].HasError).to.equal(false);
86+
expect(result.Errors["LastName"].ValidationFailures["maxlength"].HasError).to.equal(true);
8787

8888
});
8989
});
@@ -130,11 +130,14 @@ describe('basic validation rules', function () {
130130
//excercise
131131
var promiseResult = this.PersonValidator.ValidateAsync(this.Data);
132132

133-
var errorInfo = this.PersonValidator.ValidationResult;
133+
var selfValidator = this.PersonValidator;
134134
promiseResult.then(function (response) {
135135

136-
//verify
137-
expect(errorInfo.HasErrors).to.equal(false);
136+
//verify by return result
137+
expect(response.HasErrors).to.equal(false);
138+
139+
//verify by concrete validator properties
140+
expect(selfValidator.ValidationResult.HasErrors).to.equal(false);
138141

139142
done();
140143

@@ -204,7 +207,7 @@ describe('basic validation rules', function () {
204207
var result = this.PersonValidator.Validate(this.Data);
205208

206209
//verify
207-
expect(this.PersonValidator.ValidationResult.HasErrors).to.equal(false);
210+
expect(result.HasErrors).to.equal(false);
208211

209212
});
210213

@@ -219,7 +222,7 @@ describe('basic validation rules', function () {
219222
var result = this.PersonValidator.Validate(this.Data);
220223

221224
//verify
222-
expect(this.PersonValidator.ValidationResult.HasErrors).to.equal(true);
225+
expect(result.HasErrors).to.equal(true);
223226
});
224227
});
225228

@@ -358,7 +361,7 @@ describe('basic validation rules', function () {
358361
var result = this.PersonValidator.Validate(this.Data);
359362

360363
//verify
361-
expect(this.PersonValidator.ValidationResult.HasErrors).to.equal(false);
364+
expect(result.HasErrors).to.equal(false);
362365

363366
});
364367

@@ -371,7 +374,7 @@ describe('basic validation rules', function () {
371374
var result = this.PersonValidator.Validate(this.Data);
372375

373376
//verify
374-
expect(this.PersonValidator.ValidationResult.HasErrors).to.equal(true);
377+
expect(result.HasErrors).to.equal(true);
375378

376379
});
377380
});

test/validation/rulesGroups.ts

+15-7
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ describe('validation rules for groups', function () {
154154
}
155155
};
156156

157-
describe("call specific validation group",function() {
157+
describe("call specific validator",function() {
158158
beforeEach(function () {
159159

160160

@@ -171,11 +171,15 @@ describe('validation rules for groups', function () {
171171
this.Data.Contacts.push(getItemDataTemplate('[email protected]'));
172172
this.Data.Contacts.push(getItemDataTemplate('[email protected]'));
173173

174-
//excercise
174+
//find the validator by name
175175
var validator = this.MainValidator.Validators["UniqueContact"];
176-
validator.Validate(this.Data);
176+
//excercise
177+
var result = validator.Validate(this.Data);
178+
179+
//verify by return value
180+
expect(result.HasError).to.equal(false);
177181

178-
//verify
182+
//verify by validator properties
179183
expect(validator.HasErrors).to.equal(false);
180184

181185
});
@@ -186,11 +190,15 @@ describe('validation rules for groups', function () {
186190
this.Data.Contacts.push(getItemDataTemplate('[email protected]'));
187191
this.Data.Contacts.push(getItemDataTemplate('[email protected]'));
188192

189-
//excercise
193+
//find the validator by name
190194
var validator = this.MainValidator.Validators["UniqueContact"];
191-
validator.Validate(this.Data);
195+
//excercise
196+
var result = validator.Validate(this.Data);
197+
198+
//verify by return value
199+
expect(result.HasError).to.equal(true);
192200

193-
//verify
201+
//verify by validator properties
194202
expect(validator.HasErrors).to.equal(true);
195203

196204
});

test/validation/rulesLists.ts

+18-22
Original file line numberDiff line numberDiff line change
@@ -131,13 +131,12 @@ describe('validation rules for lists', function () {
131131
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
132132

133133
//verify
134-
var selfValidator = this.MainValidator;
135134
promiseResult.then(function (response) {
136135

137-
selfValidator.ValidationResult.LogErrors();
136+
response.LogErrors();
138137

139138
//verify
140-
expect(selfValidator.ValidationResult.HasErrors).to.equal(false);
139+
expect(response.HasErrors).to.equal(false);
141140

142141
done();
143142

@@ -163,17 +162,16 @@ describe('validation rules for lists', function () {
163162
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
164163

165164
//verify
166-
var selfValidator = this.MainValidator;
167165
promiseResult.then(function (response) {
168166

169-
selfValidator.ValidationResult.LogErrors();
167+
response.LogErrors();
170168

171169
//verify
172-
expect(selfValidator.ValidationResult.HasErrors).to.equal(true);
173-
expect(selfValidator.ValidationResult.Errors["Contacts"].HasErrors).to.equal(true);
174-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts0"].HasErrors).to.equal(false);
175-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts1"].HasErrors).to.equal(true);
176-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts2"].HasErrors).to.equal(true);
170+
expect(response.HasErrors).to.equal(true);
171+
expect(response.Errors["Contacts"].HasErrors).to.equal(true);
172+
expect(response.Errors["Contacts"].Errors["Contacts0"].HasErrors).to.equal(false);
173+
expect(response.Errors["Contacts"].Errors["Contacts1"].HasErrors).to.equal(true);
174+
expect(response.Errors["Contacts"].Errors["Contacts2"].HasErrors).to.equal(true);
177175

178176
done();
179177

@@ -201,16 +199,15 @@ describe('validation rules for lists', function () {
201199
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
202200

203201
//verify
204-
var selfValidator = this.MainValidator;
205202
promiseResult.then(function (response) {
206203

207-
selfValidator.ValidationResult.LogErrors();
204+
response.LogErrors();
208205

209206
//verify
210-
expect(selfValidator.ValidationResult.HasErrors).to.equal(false);
211-
expect(selfValidator.ValidationResult.Errors["Contacts"].HasErrors).to.equal(false);
212-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts0"].HasErrors).to.equal(false);
213-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts1"].HasErrors).to.equal(false);
207+
expect(response.HasErrors).to.equal(false);
208+
expect(response.Errors["Contacts"].HasErrors).to.equal(false);
209+
expect(response.Errors["Contacts"].Errors["Contacts0"].HasErrors).to.equal(false);
210+
expect(response.Errors["Contacts"].Errors["Contacts1"].HasErrors).to.equal(false);
214211

215212
done();
216213

@@ -238,16 +235,15 @@ describe('validation rules for lists', function () {
238235
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
239236

240237
//verify
241-
var selfValidator = this.MainValidator;
242238
promiseResult.then(function (response) {
243239

244-
selfValidator.ValidationResult.LogErrors();
240+
response.LogErrors();
245241

246242
//verify
247-
expect(selfValidator.ValidationResult.HasErrors).to.equal(true);
248-
expect(selfValidator.ValidationResult.Errors["Contacts"].HasErrors).to.equal(true);
249-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts0"].HasErrors).to.equal(false);
250-
expect(selfValidator.ValidationResult.Errors["Contacts"].Errors["Contacts1"].HasErrors).to.equal(true);
243+
expect(response.HasErrors).to.equal(true);
244+
expect(response.Errors["Contacts"].HasErrors).to.equal(true);
245+
expect(response.Errors["Contacts"].Errors["Contacts0"].HasErrors).to.equal(false);
246+
expect(response.Errors["Contacts"].Errors["Contacts1"].HasErrors).to.equal(true);
251247

252248
done();
253249

test/validation/rulesNested.ts

+8-12
Original file line numberDiff line numberDiff line change
@@ -144,13 +144,12 @@ describe('nested validation rules', function () {
144144
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
145145

146146
//verify
147-
var selfValidator = this.MainValidator;
148147
promiseResult.then(function (response) {
149148

150-
selfValidator.ValidationResult.LogErrors();
149+
response.LogErrors();
151150

152151
//verify
153-
expect(selfValidator.ValidationResult.HasErrors).to.equal(false);
152+
expect(response.HasErrors).to.equal(false);
154153

155154
done();
156155

@@ -172,13 +171,12 @@ describe('nested validation rules', function () {
172171
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
173172

174173
//verify
175-
var selfValidator = this.MainValidator;
176174
promiseResult.then(function (response) {
177175

178-
selfValidator.ValidationResult.LogErrors();
176+
response.LogErrors();
179177

180178
//verify
181-
expect(selfValidator.ValidationResult.HasErrors).to.equal(true);
179+
expect(response.HasErrors).to.equal(true);
182180

183181
done();
184182

@@ -218,13 +216,12 @@ describe('nested validation rules', function () {
218216
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
219217

220218
//verify
221-
var selfValidator = this.MainValidator;
222219
promiseResult.then(function (response) {
223220

224-
selfValidator.ValidationResult.LogErrors();
221+
response.LogErrors();
225222

226223
//verify
227-
expect(selfValidator.ValidationResult.HasErrors).to.equal(false);
224+
expect(response.HasErrors).to.equal(false);
228225

229226
done();
230227

@@ -243,13 +240,12 @@ describe('nested validation rules', function () {
243240
var promiseResult = this.MainValidator.ValidateAsync(this.Data);
244241

245242
//verify
246-
var selfValidator = this.MainValidator;
247243
promiseResult.then(function (response) {
248244

249-
selfValidator.ValidationResult.LogErrors();
245+
response.LogErrors();
250246

251247
//verify
252-
expect(selfValidator.ValidationResult.HasErrors).to.equal(false);
248+
expect(response.HasErrors).to.equal(false);
253249

254250
done();
255251

0 commit comments

Comments
 (0)