Getting close, adds tests, fixese the key being set on the block, gets errors clearing, now need to make the UI behave.
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
describe('serverValidationManager tests', function () {
|
||||
var serverValidationManager;
|
||||
var $rootScope, serverValidationManager, $timeout;
|
||||
|
||||
beforeEach(module('umbraco.services'));
|
||||
|
||||
beforeEach(inject(function ($injector) {
|
||||
$rootScope = $injector.get('$rootScope');
|
||||
$timeout = $injector.get('$timeout');
|
||||
serverValidationManager = $injector.get('serverValidationManager');
|
||||
serverValidationManager.clear();
|
||||
}));
|
||||
@@ -480,7 +482,9 @@
|
||||
allErrors: allErrors
|
||||
};
|
||||
}, null);
|
||||
|
||||
|
||||
|
||||
//act
|
||||
serverValidationManager.addFieldError("Name", "Required");
|
||||
serverValidationManager.addPropertyError("myProperty", null, "value1", "Some value 1", null);
|
||||
@@ -501,7 +505,9 @@
|
||||
var cb2 = function () {
|
||||
};
|
||||
serverValidationManager.subscribe(null, null, "Name", cb1, null);
|
||||
|
||||
serverValidationManager.subscribe(null, null, "Title", cb2, null);
|
||||
|
||||
|
||||
//act
|
||||
serverValidationManager.addFieldError("Name", "Required");
|
||||
@@ -537,6 +543,7 @@
|
||||
};
|
||||
}, null);
|
||||
|
||||
|
||||
serverValidationManager.subscribe("myProperty", null, "", function (isValid, propertyErrors, allErrors) {
|
||||
numCalled++;
|
||||
args2 = {
|
||||
@@ -545,6 +552,9 @@
|
||||
allErrors: allErrors
|
||||
};
|
||||
}, null);
|
||||
|
||||
|
||||
console.log("NOW ADDING ERRORS " + numCalled);
|
||||
|
||||
//act
|
||||
serverValidationManager.addPropertyError("myProperty", null, "value1", "Some value 1", null);
|
||||
@@ -587,6 +597,7 @@
|
||||
allErrors: allErrors
|
||||
};
|
||||
}, null);
|
||||
|
||||
|
||||
serverValidationManager.subscribe(null, "es-ES", null, function (isValid, propertyErrors, allErrors) {
|
||||
numCalled++;
|
||||
@@ -596,6 +607,7 @@
|
||||
allErrors: allErrors
|
||||
};
|
||||
}, null);
|
||||
|
||||
|
||||
//act
|
||||
serverValidationManager.addPropertyError("myProperty", null, "value1", "Some value 1", null);
|
||||
@@ -604,28 +616,30 @@
|
||||
serverValidationManager.addPropertyError("myProperty", "fr-FR", "", "Some value 3", null);
|
||||
|
||||
//assert
|
||||
expect(args1).not.toBeUndefined();
|
||||
expect(args1.isValid).toBe(false);
|
||||
expect(args2.isValid).toBe(true); // no errors registered for this callback
|
||||
|
||||
expect(args2).toBeUndefined();
|
||||
|
||||
expect(numCalled).toEqual(2);
|
||||
expect(numCalled).toEqual(8); // both subscriptions will be called once per addPropertyError
|
||||
});
|
||||
|
||||
it('can subscribe to a property validation path prefix', function () {
|
||||
var numCalled = 0;
|
||||
var callbackA = [];
|
||||
var callbackB = [];
|
||||
|
||||
//arrange
|
||||
serverValidationManager.subscribe("myProperty", null, null, function (isValid, propertyErrors, allErrors) {
|
||||
numCalled++;
|
||||
// since this is matching on prefix, there should be as many property errors as numCalled
|
||||
expect(propertyErrors.length).toEqual(numCalled);
|
||||
callbackA.push(propertyErrors);
|
||||
}, null, true);
|
||||
|
||||
serverValidationManager.subscribe("myProperty/34E3A26C-103D-4A05-AB9D-7E14032309C3/addresses", null, null, function (isValid, propertyErrors, allErrors) {
|
||||
callbackB.push(propertyErrors);
|
||||
}, null, true);
|
||||
|
||||
//act
|
||||
// will match:
|
||||
// will match A:
|
||||
serverValidationManager.addPropertyError("myProperty", null, null, "property error", null);
|
||||
serverValidationManager.addPropertyError("myProperty", null, "value1", "value error", null);
|
||||
// will match A + B
|
||||
serverValidationManager.addPropertyError("myProperty/34E3A26C-103D-4A05-AB9D-7E14032309C3/addresses/FBEAEE8F-4BC9-43EE-8B81-FCA8978850F1/city", null, null, "property error", null);
|
||||
serverValidationManager.addPropertyError("myProperty/34E3A26C-103D-4A05-AB9D-7E14032309C3/addresses/FBEAEE8F-4BC9-43EE-8B81-FCA8978850F1/city", null, "value1", "value error", null);
|
||||
// won't match:
|
||||
@@ -635,7 +649,25 @@
|
||||
serverValidationManager.addPropertyError("otherProperty", null, "value1", "value error", null);
|
||||
|
||||
//assert
|
||||
expect(numCalled).toEqual(4);
|
||||
|
||||
// both will be called each time addPropertyError is called
|
||||
expect(callbackA.length).toEqual(8);
|
||||
expect(callbackB.length).toEqual(8);
|
||||
expect(callbackA[callbackA.length - 1].length).toEqual(4); // 4 errors for A
|
||||
expect(callbackB[callbackB.length - 1].length).toEqual(2); // 2 errors for B
|
||||
|
||||
// clear the data and notify
|
||||
callbackA = [];
|
||||
callbackB = [];
|
||||
|
||||
serverValidationManager.notify();
|
||||
$timeout.flush();
|
||||
|
||||
expect(callbackA.length).toEqual(1);
|
||||
expect(callbackB.length).toEqual(1);
|
||||
expect(callbackA[0].length).toEqual(4); // 4 errors for A
|
||||
expect(callbackB[0].length).toEqual(2); // 2 errors for B
|
||||
|
||||
});
|
||||
|
||||
// TODO: Finish testing the rest!
|
||||
|
||||
Reference in New Issue
Block a user