blob: 782f03f63c2d6d8981764122bbac047512521211 [file] [log] [blame]
/**
* © OpenCORD
*
* Created by teone on 4/15/16.
*/
(function () {
'use strict';
describe('The xos.helper module', function(){
describe('The xos-validation component', () => {
let element, scope, isolatedScope;
beforeEach(module('xos.helpers'));
beforeEach(inject(($compile, $rootScope) => {
scope = $rootScope.$new();
scope.errors = {};
element = angular.element(`<xos-validation errors="errors"></xos-validation>`);
$compile(element)(scope);
scope.$digest();
isolatedScope = element.isolateScope().vm;
}));
it('should not show an alert', () => {
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.errors[e.type] = true;
scope.$digest();
let alert = $(element).find('xos-alert > .alert')[i];
expect(alert).not.toHaveClass('ng-hide');
expect(alert).toHaveText(e.message);
});
});
});
});
})();