blob: 76d0ee0fb670eb3f29a6b3f91a5807cf0c6f4cd6 [file] [log] [blame]
/********************************************************************************
* Copyright © 2018 Mettenmeier GmbH and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Mettenmeier GmbH - initial implementation
* Basys GmbH - automatic report generation implementation
********************************************************************************/
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {ErrorComponent} from '@shared/components/error/error.component';
import {FormControl, Validators} from '@angular/forms';
describe('ErrorComponent', () => {
let component: ErrorComponent;
let fixture: ComponentFixture<ErrorComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ErrorComponent]
}).compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ErrorComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
describe('shouldShowError', () => {
it('shouldn´t show errors if there are no errors', () => {
(component as any).control = new FormControl('');
expect(component.shouldShowErrors()).toBeFalsy();
});
it('should show errors if there are errors and is dirty', () => {
(component as any).control = new FormControl('', Validators.required);
(component as any).control.markAsDirty();
expect(component.shouldShowErrors()).toBeTruthy();
});
it('should show errors if there are errors and is touched', () => {
(component as any).control = new FormControl('', Validators.required);
(component as any).control.markAsTouched();
expect(component.shouldShowErrors()).toBeTruthy();
});
it('should return an Array of error Messages', () => {
(component as any).control = new FormControl('', Validators.required);
expect(Array.isArray(component.listOfErrors())).toBeTruthy();
});
it('should return an empty Array if there are no errorMessages', () => {
(component as any).control = new FormControl('');
expect(component.listOfErrors().length === 0).toBeTruthy();
});
it('should return an Array with empty String', () => {
(component as any).control = new FormControl('');
(component as any).control.setErrors({ test: 'test' });
expect(component.listOfErrors().length === 1).toBeTruthy();
expect(component.listOfErrors()[0] === '').toBeTruthy();
});
it('should return an Array with an error for minLength = 4', () => {
(component as any).control = new FormControl('abc', Validators.minLength(4));
expect(component.listOfErrors()[0]).toEqual('Es müssen mindestens 4 Zeichen eingegeben werden');
});
it('should return an Array with an error for maxLength = 4', () => {
(component as any).control = new FormControl('abcde', Validators.maxLength(4));
expect(component.listOfErrors()[0]).toEqual('Es dürfen maximal 4 Zeichen eingegeben werden');
});
it('should return an Array with an error for pattern ^abc$', () => {
(component as any).control = new FormControl('abd', Validators.pattern('^abc$'));
expect(component.listOfErrors()[0]).toEqual('Die Eingabe entspricht nicht dem Muster: ^abc$');
});
it('should return an Array with an error for email error', () => {
(component as any).control = new FormControl('abc', Validators.email);
expect(component.listOfErrors()[0]).toEqual('Die Eingabe enthält keine gültige Emailadresse.');
});
});
});