| /** |
| * © OpenCORD |
| * |
| * Created by teone on 4/15/16. |
| */ |
| |
| (function () { |
| 'use strict'; |
| |
| let compile, element, scope, rootScope; |
| |
| const compileElement = (el) => { |
| element = el; |
| |
| if(!scope){ |
| scope = rootScope.$new(); |
| } |
| if(angular.isUndefined(element)){ |
| element = angular.element('<xos-validation field="field" form="form"></xos-validation>'); |
| } |
| compile(element)(scope); |
| scope.$digest(); |
| } |
| |
| describe('The xos.helper module', function(){ |
| describe('The xos-validation component', () => { |
| |
| beforeEach(module('xos.helpers')); |
| |
| describe('when the form has no errors', () => { |
| beforeEach(inject(($compile, $rootScope) => { |
| compile = $compile; |
| scope = $rootScope.$new(); |
| |
| scope.field = { |
| $error: {} |
| }; |
| |
| scope.form = { |
| $submitted: true |
| } |
| |
| compileElement(); |
| })); |
| |
| it('should not show an alert by default', () => { |
| expect($(element).find('xos-alert > .alert')[0]).toHaveClass('ng-hide'); |
| }); |
| }); |
| |
| let availableErrors = [ |
| { |
| type: 'required', |
| message: 'Field required' |
| }, |
| { |
| type: 'email', |
| message: 'This is not a valid email' |
| }, |
| { |
| type: 'minlength', |
| message: 'Too short' |
| }, |
| { |
| type: 'maxlength', |
| message: 'Too long' |
| }, |
| { |
| type: 'custom', |
| message: 'Field invalid' |
| }, |
| ]; |
| |
| // use a loop to generate similar test |
| availableErrors.forEach((e, i) => { |
| it(`should show an alert for ${e.type} errors`, () => { |
| scope.field.$error[e.type] = true; |
| compileElement(); |
| let alert = $(element).find('xos-alert > .alert')[i]; |
| expect(alert).not.toHaveClass('ng-hide'); |
| expect(alert).toHaveText(e.message); |
| }); |
| }); |
| }); |
| }); |
| })(); |