Skip to content

Commit e383e59

Browse files
authored
Merge pull request #40 from Lemoncode/issue37-remove-mappings
Remove mappings in validationEngine
2 parents 8dcb3b0 + 509c431 commit e383e59

File tree

12 files changed

+109
-331
lines changed

12 files changed

+109
-331
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ typings/
77
lib/README.md
88
lib/ReadmeResources/
99
lib/coverage/
10-
lib/yarn.lock
10+
yarn.lock

lib/lcformvalidation.d.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
}
2727

2828
export interface IValidationEngine {
29-
initialize(formNameToFieldNameMappings : Array<FormNameToFieldNameMapping>): void;
3029
isFormDirty(): boolean;
3130
isFormPristine(): boolean;
3231
validateFullForm(vm: any): Promise<FormValidationResult>;

lib/package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
{
22
"name": "lc-form-validation",
3-
"version": "0.1.7",
3+
"version": "0.9.0",
44
"description": "lcFormValidation is form library validation: heavily based on javascript (no html attributes / annotations), async by default. lcFormValidation is third party / framework agnostic, it can be easily integrated with frameworks like React.",
55
"main": "dist/lc-form-validation.js",
66
"scripts": {
77
"test": "karma start --browsers PhantomJS --single-run",
8+
"test:watch": "karma start --browsers PhantomJS",
89
"clean": "rimraf dist ReadmeResources",
910
"build:prod": "cross-env NODE_ENV=production webpack --output-filename dist/lc-form-validation.min.js",
1011
"build:dev": "cross-env NODE_ENV=development webpack --output-filename dist/lc-form-validation.js",

lib/src/spec/validationEngine.spec.ts

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,6 @@ describe('lcFormValidation', () => {
1010
// Arrange
1111
const formValidationBase: ValidationEngine = new ValidationEngine();
1212

13-
// Act
14-
formValidationBase.initialize([]);
15-
1613
// Assert
1714
expect(formValidationBase.isFormPristine()).to.be.true;
1815
});
@@ -22,9 +19,6 @@ describe('lcFormValidation', () => {
2219
const formValidationBase: ValidationEngine = new ValidationEngine();
2320
const viewModel = [{ formFieldName: 'nameId', vmFieldName: 'name' }];
2421

25-
// Act
26-
formValidationBase.initialize(viewModel);
27-
2822
formValidationBase
2923
.triggerFieldValidation(viewModel, 'nameId', 'newContent')
3024
.then((errors) => {
@@ -39,9 +33,6 @@ describe('lcFormValidation', () => {
3933
// Arrange
4034
const formValidationBase: ValidationEngine = new ValidationEngine();
4135

42-
// Act
43-
formValidationBase.initialize([]);
44-
4536
// Assert
4637
expect(formValidationBase.isFormDirty()).to.be.false;
4738
});
@@ -51,9 +42,6 @@ describe('lcFormValidation', () => {
5142
const formValidationBase: ValidationEngine = new ValidationEngine();
5243
const viewModel = [{ formFieldName: 'nameId', vmFieldName: 'name' }];
5344

54-
// Act
55-
formValidationBase.initialize(viewModel);
56-
5745
formValidationBase
5846
.triggerFieldValidation(viewModel, 'nameId', 'newContent')
5947
.then((errors) => {
@@ -67,9 +55,6 @@ describe('lcFormValidation', () => {
6755
// Arrange
6856
const formValidationBase: ValidationEngine = new ValidationEngine();
6957

70-
// Act
71-
formValidationBase.initialize([]);
72-
7358
// Assert
7459
expect(formValidationBase.isValidationInProgress()).to.be.false;
7560
});
@@ -80,8 +65,6 @@ describe('lcFormValidation', () => {
8065
const viewModel = [{ formFieldName: 'nameId', vmFieldName: 'name' }];
8166

8267
// Act
83-
formValidationBase.initialize([]);
84-
8568
formValidationBase
8669
.triggerFieldValidation(viewModel, 'nameId', 'newContent')
8770
.then((errors) => {

lib/src/spec/validationEngineValidateForm.spec.ts

Lines changed: 69 additions & 146 deletions
Large diffs are not rendered by default.

lib/src/spec/validationEngineValidateSingleField.spec.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ describe('lcFormValidation simple form', () => {
1616
const viewModel = { id: '1', fullname: 'john' };
1717

1818
// Act
19-
formValidationBase.initialize([{ formFieldName: 'nameId', vmFieldName: 'fullname' }]);
20-
2119
formValidationBase.addFieldValidationAsync('nameId',
2220
(vm, value): Promise<FieldValidationResult> => {
2321
// Required field
@@ -56,8 +54,6 @@ describe('lcFormValidation simple form', () => {
5654
const viewModel = { id: '1', fullname: 'john' };
5755

5856
// Act
59-
formValidationBase.initialize([{ formFieldName: 'nameId', vmFieldName: 'fullname' }]);
60-
6157
formValidationBase.addFieldValidationAsync('nameId',
6258
(vm, value): Promise<FieldValidationResult> => {
6359
// Required field
@@ -95,8 +91,6 @@ describe('lcFormValidation simple form', () => {
9591
const viewModel = { id: '1', fullname: 'john' };
9692

9793
// Act
98-
formValidationBase.initialize([{ formFieldName: 'nameId', vmFieldName: 'fullname' }]);
99-
10094
formValidationBase.addFieldValidationAsync('nameId',
10195
(vm, value): Promise<FieldValidationResult> => {
10296
// Required field
@@ -134,8 +128,6 @@ describe('lcFormValidation simple form', () => {
134128
const viewModel = { id: '1', fullname: 'john' };
135129

136130
// Act
137-
formValidationBase.initialize([{ formFieldName: 'nameId', vmFieldName: 'fullname' }]);
138-
139131
formValidationBase.addFieldValidationAsync('nameId',
140132
(vm, value): Promise<FieldValidationResult> => {
141133
let error = true;

lib/src/spec/validationsDispatcher.spec.ts

Lines changed: 21 additions & 127 deletions
Original file line numberDiff line numberDiff line change
@@ -526,187 +526,81 @@ describe('ValidationsDispatcher', () => {
526526

527527
describe('Group #2 => When calling fireAllFieldsValidations', () => {
528528
it('Spec #1 => should return empty array' +
529-
'When passing vm equals undefined, formFieldToViewModelKeyValues equals undefined and validationFn equals undefined', () => {
530-
//Arrange
529+
'When passing vm equals undefined and validationFn equals undefined', () => {
530+
// Arrange
531531
let vm = undefined;
532-
let formFieldToViewModelKeyValues = undefined;
533532
let validationFn = undefined;
534533

535-
//Act
536-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
534+
// Act
535+
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, validationFn);
537536

538-
//Assert
537+
// Assert
539538
expect(fieldValidationResultPromises).to.have.length(0);
540539
});
541540

542541
it('Spec #2 => should return empty array' +
543-
'When passing vm equals undefined, formFieldToViewModelKeyValues equals null and validationFn equals undefined', () => {
544-
//Arrange
545-
let vm = undefined;
546-
let formFieldToViewModelKeyValues = null;
547-
let validationFn = undefined;
548-
549-
//Act
550-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
551-
552-
//Assert
553-
expect(fieldValidationResultPromises).to.have.length(0);
554-
});
555-
556-
it('Spec #3 => should return empty array' +
557-
'When passing vm equals undefined, formFieldToViewModelKeyValues equals [] and validationFn equals undefined', () => {
558-
//Arrange
559-
let vm = undefined;
560-
let formFieldToViewModelKeyValues = [];
561-
let validationFn = undefined;
562-
563-
//Act
564-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
565-
566-
//Assert
567-
expect(fieldValidationResultPromises).to.have.length(0);
568-
});
569-
570-
it('Spec #4 => should return empty array' +
571-
'When passing vm equals undefined, formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] and validationFn equals undefined', () => {
572-
//Arrange
573-
let vm = undefined;
574-
575-
let keyValue = new FormNameToFieldNameMapping();
576-
keyValue.formFieldName = 'testFormId';
577-
keyValue.vmFieldName = 'testVmProperty';
578-
579-
let formFieldToViewModelKeyValues = [keyValue];
580-
let validationFn = undefined;
581-
582-
//Act
583-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
584-
585-
//Assert
586-
expect(fieldValidationResultPromises).to.have.length(0);
587-
});
588-
589-
it('Spec #5 => should return empty array' +
590-
'When passing vm equals null, formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] and validationFn equals undefined', () => {
542+
'When passing vm equals null and validationFn equals undefined', () => {
591543
//Arrange
592544
let vm = null;
593-
594-
let keyValue = new FormNameToFieldNameMapping();
595-
keyValue.formFieldName = 'testFormId';
596-
keyValue.vmFieldName = 'testVmProperty';
597-
598-
let formFieldToViewModelKeyValues = [keyValue];
599545
let validationFn = undefined;
600546

601547
//Act
602-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
548+
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, validationFn);
603549

604550
//Assert
605551
expect(fieldValidationResultPromises).to.have.length(0);
606552
});
607553

608-
it('Spec #6 => should return empty array' +
609-
'When passing vm equals "", formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] and validationFn equals undefined', () => {
554+
it('Spec #3 => should return empty array' +
555+
'When passing vm equals "" and validationFn equals undefined', () => {
610556
//Arrange
611557
let vm = "";
612-
613-
let keyValue = new FormNameToFieldNameMapping();
614-
keyValue.formFieldName = 'testFormId';
615-
keyValue.vmFieldName = 'testVmProperty';
616-
617-
let formFieldToViewModelKeyValues = [keyValue];
618558
let validationFn = undefined;
619559

620560
//Act
621-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
561+
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, validationFn);
622562

623563
//Assert
624564
expect(fieldValidationResultPromises).to.have.length(0);
625565
});
626566

627-
it('Spec #7 => should return empty array' +
628-
'When passing vm equals { }, formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] ' +
629-
'and validationFn equals undefined', () => {
567+
it('Spec #4 => should return empty array' +
568+
'When passing vm equals { } and validationFn equals undefined', () => {
630569
//Arrange
631-
let vm = {
632-
};
633-
634-
let keyValue = new FormNameToFieldNameMapping();
635-
keyValue.formFieldName = 'testFormId';
636-
keyValue.vmFieldName = 'testVmProperty';
637-
638-
let formFieldToViewModelKeyValues = [keyValue];
570+
let vm = {};
639571
let validationFn = undefined;
640572

641573
//Act
642-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFn);
643-
644-
//Assert
645-
expect(fieldValidationResultPromises).to.have.length(0);
646-
});
647-
648-
it('Spec #8 => should return empty array and it does not call to validationFn' +
649-
'When passing vm equals { }, formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] ' +
650-
'and validationFn equals function', () => {
651-
//Arrange
652-
let vm = {
653-
};
654-
655-
let keyValue = new FormNameToFieldNameMapping();
656-
keyValue.formFieldName = 'testFormId';
657-
keyValue.vmFieldName = 'testVmProperty';
658-
659-
let formFieldToViewModelKeyValues = [keyValue];
660-
let validationFnSpy = sinon.spy();
661-
662-
//Act
663-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFnSpy);
574+
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, validationFn);
664575

665576
//Assert
666577
expect(fieldValidationResultPromises).to.have.length(0);
667-
expect(validationFnSpy.called).to.be.false;
668578
});
669579

670-
it('Spec #9 => should return empty array and it does not call to validationFn' +
671-
'When passing vm equals { property: "test" }, formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] ' +
672-
'and validationFn equals function', () => {
580+
it('Spec #5 => should return empty array and it does not call to validationFn' +
581+
'When passing vm equals { } and validationFn equals function', () => {
673582
//Arrange
674-
let vm = {
675-
property: 'test'
676-
};
677-
678-
let keyValue = new FormNameToFieldNameMapping();
679-
keyValue.formFieldName = 'testFormId';
680-
keyValue.vmFieldName = 'testVmProperty';
681-
682-
let formFieldToViewModelKeyValues = [keyValue];
583+
let vm = {};
683584
let validationFnSpy = sinon.spy();
684585

685586
//Act
686-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFnSpy);
587+
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, validationFnSpy);
687588

688589
//Assert
689590
expect(fieldValidationResultPromises).to.have.length(0);
690591
expect(validationFnSpy.called).to.be.false;
691592
});
692593

693-
it('Spec #10 => should return array with one item and it calls to validationFn' +
694-
'When passing vm equals { testVmProperty: "test" }, formFieldToViewModelKeyValues equals [{id: "testFormId", value: "testVmProperty"}] ' +
695-
'and validationFn equals function', () => {
594+
it('Spec #6 => should return array with one item and it calls to validationFn' +
595+
'When passing vm equals { testVmProperty: "test" } and validationFn equals function', () => {
696596
//Arrange
697597
let vm = {
698598
testVmProperty: 'test'
699599
};
700-
701-
let keyValue = new FormNameToFieldNameMapping();
702-
keyValue.formFieldName = 'testFormId';
703-
keyValue.vmFieldName = 'testVmProperty';
704-
705-
let formFieldToViewModelKeyValues = [keyValue];
706600
let validationFnSpy = sinon.spy();
707601

708602
//Act
709-
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, formFieldToViewModelKeyValues, validationFnSpy);
603+
let fieldValidationResultPromises = validationsDispatcher.fireAllFieldsValidations(vm, validationFnSpy);
710604

711605
//Assert
712606
expect(fieldValidationResultPromises).to.have.length(1);

lib/src/validationEngine.ts

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import { fieldValidationEventFilter } from './fieldValidationEventFilter';
77
import { entitiesMapper } from './entitiesMapper';
88

99
export interface IValidationEngine {
10-
initialize(formNameToFieldNameMappings: Array<FormNameToFieldNameMapping>): void;
1110
isFormDirty(): boolean;
1211
isFormPristine(): boolean;
1312
validateFullForm(vm: any): Promise<FormValidationResult>;
@@ -34,11 +33,7 @@ export class ValidationEngine implements IValidationEngine {
3433
this._validationsPerField = [];
3534
this._formNameToFieldNameMappings = new Array<FormNameToFieldNameMapping>();
3635
this._validationsGlobalForm = [];
37-
}
38-
39-
initialize(formNameToFieldNameMappings: Array<FormNameToFieldNameMapping>): void {
4036
this._isFormPristine = true;
41-
this._formNameToFieldNameMappings = [...formNameToFieldNameMappings];
4237
}
4338

4439
isFormDirty(): boolean {
@@ -53,8 +48,10 @@ export class ValidationEngine implements IValidationEngine {
5348

5449
const fullFormValidatedPromise = new Promise((resolve, reject) => {
5550
// Let's add fileValidationResults
56-
let fieldValidationResultsPromises = validationsDispatcher.fireAllFieldsValidations(viewModel, this._formNameToFieldNameMappings,
57-
this.validateSingleField.bind(this));
51+
let fieldValidationResultsPromises = validationsDispatcher.fireAllFieldsValidations(
52+
viewModel,
53+
this.validateSingleField.bind(this)
54+
);
5855

5956
// Let's add GlobalFormValidations
6057
if (this._validationsGlobalForm.length > 0) {

0 commit comments

Comments
 (0)