diff options
Diffstat (limited to 'test/service/formFactorySpec.js')
| -rw-r--r-- | test/service/formFactorySpec.js | 206 |
1 files changed, 0 insertions, 206 deletions
diff --git a/test/service/formFactorySpec.js b/test/service/formFactorySpec.js deleted file mode 100644 index 1a23aa49..00000000 --- a/test/service/formFactorySpec.js +++ /dev/null @@ -1,206 +0,0 @@ -'use strict'; - -describe('$formFactory', function() { - - it('should have global form', inject(function($rootScope, $formFactory) { - expect($formFactory.rootForm).toBeTruthy(); - expect($formFactory.rootForm.$createWidget).toBeTruthy(); - })); - - - describe('new form', function() { - var form; - var scope; - var log; - - function WidgetCtrl($formFactory, $scope) { - log += '<init>'; - $scope.$render = function() { - log += '$render();'; - }; - $scope.$on('$validate', function(e){ - log += '$validate();'; - }); - - this.$formFactory = $formFactory; - } - - WidgetCtrl.$inject = ['$formFactory', '$scope']; - - WidgetCtrl.prototype = { - getFormFactory: function() { - return this.$formFactory; - } - }; - - beforeEach(inject(function($rootScope, $formFactory) { - log = ''; - scope = $rootScope.$new(); - form = $formFactory(scope); - })); - - describe('$createWidget', function() { - var widget; - - beforeEach(function() { - widget = form.$createWidget({ - scope:scope, - model:'text', - alias:'text', - controller:WidgetCtrl - }); - }); - - - describe('data flow', function() { - it('should have status properties', inject(function($rootScope, $formFactory) { - expect(widget.$error).toEqual({}); - expect(widget.$valid).toBe(true); - expect(widget.$invalid).toBe(false); - })); - - - it('should update view when model changes', inject(function($rootScope, $formFactory) { - scope.text = 'abc'; - scope.$digest(); - expect(log).toEqual('<init>$validate();$render();'); - expect(widget.$modelValue).toEqual('abc'); - - scope.text = 'xyz'; - scope.$digest(); - expect(widget.$modelValue).toEqual('xyz'); - - })); - }); - - - describe('validation', function() { - it('should update state on error', inject(function($rootScope, $formFactory) { - widget.$emit('$invalid', 'E'); - expect(widget.$valid).toEqual(false); - expect(widget.$invalid).toEqual(true); - - widget.$emit('$valid', 'E'); - expect(widget.$valid).toEqual(true); - expect(widget.$invalid).toEqual(false); - })); - - - it('should have called the model setter before the validation', inject(function($rootScope, $formFactory) { - var modelValue; - widget.$on('$validate', function() { - modelValue = scope.text; - }); - widget.$emit('$viewChange', 'abc'); - expect(modelValue).toEqual('abc'); - })); - - - describe('form', function() { - it('should invalidate form when widget is invalid', inject(function($rootScope, $formFactory) { - expect(form.$error).toEqual({}); - expect(form.$valid).toEqual(true); - expect(form.$invalid).toEqual(false); - - widget.$emit('$invalid', 'REASON'); - - expect(form.$error.REASON).toEqual([widget]); - expect(form.$valid).toEqual(false); - expect(form.$invalid).toEqual(true); - - var widget2 = form.$createWidget({ - scope:scope, model:'text', - alias:'text', - controller:WidgetCtrl - }); - widget2.$emit('$invalid', 'REASON'); - - expect(form.$error.REASON).toEqual([widget, widget2]); - expect(form.$valid).toEqual(false); - expect(form.$invalid).toEqual(true); - - widget.$emit('$valid', 'REASON'); - - expect(form.$error.REASON).toEqual([widget2]); - expect(form.$valid).toEqual(false); - expect(form.$invalid).toEqual(true); - - widget2.$emit('$valid', 'REASON'); - - expect(form.$error).toEqual({}); - expect(form.$valid).toEqual(true); - expect(form.$invalid).toEqual(false); - })); - }); - - }); - - describe('id assignment', function() { - it('should default to name expression', inject(function($rootScope, $formFactory) { - expect(form.text).toEqual(widget); - })); - - - it('should use ng:id', inject(function($rootScope, $formFactory) { - widget = form.$createWidget({ - scope:scope, - model:'text', - alias:'my.id', - controller:WidgetCtrl - }); - expect(form['my.id']).toEqual(widget); - })); - - - it('should not override existing names', inject(function($rootScope, $formFactory) { - var widget2 = form.$createWidget({ - scope:scope, - model:'text', - alias:'text', - controller:WidgetCtrl - }); - expect(form.text).toEqual(widget); - expect(widget2).not.toEqual(widget); - })); - }); - - describe('dealocation', function() { - it('should dealocate', inject(function($rootScope, $formFactory) { - var widget2 = form.$createWidget({ - scope:scope, - model:'text', - alias:'myId', - controller:WidgetCtrl - }); - expect(form.myId).toEqual(widget2); - var widget3 = form.$createWidget({ - scope:scope, - model:'text', - alias:'myId', - controller:WidgetCtrl - }); - expect(form.myId).toEqual(widget2); - - widget3.$destroy(); - expect(form.myId).toEqual(widget2); - - widget2.$destroy(); - expect(form.myId).toBeUndefined(); - })); - - - it('should remove invalid fields from errors, when child widget removed', inject(function($rootScope, $formFactory) { - widget.$emit('$invalid', 'MyError'); - - expect(form.$error.MyError).toEqual([widget]); - expect(form.$invalid).toEqual(true); - - widget.$destroy(); - - expect(form.$error.MyError).toBeUndefined(); - expect(form.$invalid).toEqual(false); - })); - }); - }); - }); -}); |
