#272 Improve 'login' tests

This commit is contained in:
Denys Vuika
2016-06-24 12:15:53 +01:00
parent 6575a6143d
commit 5169db2073

View File

@@ -20,6 +20,7 @@ import {
describe, describe,
expect, expect,
inject, inject,
beforeEach,
beforeEachProviders beforeEachProviders
} from '@angular/core/testing'; } from '@angular/core/testing';
import { AlfrescoAuthenticationService } from 'ng2-alfresco-core'; import { AlfrescoAuthenticationService } from 'ng2-alfresco-core';
@@ -31,6 +32,9 @@ import { TranslationMock } from './../assets/translation.service.mock';
describe('AlfrescoLogin', () => { describe('AlfrescoLogin', () => {
let componentFixture;
let component;
beforeEachProviders(() => { beforeEachProviders(() => {
return [ return [
{ provide: AlfrescoAuthenticationService, useClass: AuthenticationMock }, { provide: AlfrescoAuthenticationService, useClass: AuthenticationMock },
@@ -38,19 +42,24 @@ describe('AlfrescoLogin', () => {
]; ];
}); });
it('should render Login form with all the keys to be translated', beforeEach(
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { inject(
[TestComponentBuilder],
(tcb: TestComponentBuilder) => {
return tcb return tcb
.createAsync(AlfrescoLoginComponent) .createAsync(AlfrescoLoginComponent)
.then((fixture) => { .then(fixture => {
let component = fixture.componentInstance; componentFixture = fixture;
component.isErrorStyle = function () { component = fixture.componentInstance;
console.log('mock'); });
}; }
)
);
fixture.detectChanges(); it('should render Login form with all the keys to be translated', () => {
componentFixture.detectChanges();
let element = fixture.nativeElement; let element = componentFixture.nativeElement;
expect(element.querySelector('[for="username"]')).toBeDefined(); expect(element.querySelector('[for="username"]')).toBeDefined();
expect(element.querySelector('[for="username"]').innerText).toEqual('LOGIN.LABEL.USERNAME'); expect(element.querySelector('[for="username"]').innerText).toEqual('LOGIN.LABEL.USERNAME');
@@ -69,47 +78,31 @@ describe('AlfrescoLogin', () => {
expect(element.querySelector('#login-action-register')).toBeDefined(); expect(element.querySelector('#login-action-register')).toBeDefined();
expect(element.querySelector('#login-action-register').innerText).toEqual('LOGIN.ACTION.REGISTER'); expect(element.querySelector('#login-action-register').innerText).toEqual('LOGIN.ACTION.REGISTER');
}); });
}));
it('should render user and password input fields with default values', it('should render user and password input fields with default values', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let element = componentFixture.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let element = fixture.nativeElement;
expect(element.querySelector('form')).toBeDefined(); expect(element.querySelector('form')).toBeDefined();
expect(element.querySelector('input[type="password"]')).toBeDefined(); expect(element.querySelector('input[type="password"]')).toBeDefined();
expect(element.querySelector('input[type="text"]')).toBeDefined(); expect(element.querySelector('input[type="text"]')).toBeDefined();
expect(element.querySelector('input[type="password"]').value).toEqual(''); expect(element.querySelector('input[type="password"]').value).toEqual('');
expect(element.querySelector('input[type="text"]').value).toEqual(''); expect(element.querySelector('input[type="text"]').value).toEqual('');
}); });
}));
it('should render validation min-length error when the username is lower than 4 characters', it('should render validation min-length error when the username is lower than 4 characters', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
let compiled = fixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = '123'; usernameInput.value = '123';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.formError).toBeDefined(); expect(component.formError).toBeDefined();
expect(component.formError.username).toBeDefined(); expect(component.formError.username).toBeDefined();
@@ -117,31 +110,21 @@ describe('AlfrescoLogin', () => {
expect(compiled.querySelector('#username-error')).toBeDefined(); expect(compiled.querySelector('#username-error')).toBeDefined();
expect(compiled.querySelector('#username-error').innerText).toEqual('LOGIN.MESSAGES.USERNAME-MIN'); expect(compiled.querySelector('#username-error').innerText).toEqual('LOGIN.MESSAGES.USERNAME-MIN');
}); });
}));
it('should render validation required error when the username is empty', it('should render validation required error when the username is empty', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
let compiled = fixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = ''; usernameInput.value = '';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.formError).toBeDefined(); expect(component.formError).toBeDefined();
expect(component.formError.username).toBeDefined(); expect(component.formError.username).toBeDefined();
@@ -149,31 +132,21 @@ describe('AlfrescoLogin', () => {
expect(compiled.querySelector('#username-error')).toBeDefined(); expect(compiled.querySelector('#username-error')).toBeDefined();
expect(compiled.querySelector('#username-error').innerText).toEqual('LOGIN.MESSAGES.USERNAME-REQUIRED'); expect(compiled.querySelector('#username-error').innerText).toEqual('LOGIN.MESSAGES.USERNAME-REQUIRED');
}); });
}));
it('should render validation required error when the password is empty', it('should render validation required error when the password is empty', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
let compiled = fixture.debugElement.nativeElement;
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
passwordInput.value = ''; passwordInput.value = '';
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.formError).toBeDefined(); expect(component.formError).toBeDefined();
expect(component.formError.password).toBeDefined(); expect(component.formError.password).toBeDefined();
@@ -181,34 +154,24 @@ describe('AlfrescoLogin', () => {
expect(compiled.querySelector('#password-required')).toBeDefined(); expect(compiled.querySelector('#password-required')).toBeDefined();
expect(compiled.querySelector('#password-required').innerText).toEqual('LOGIN.MESSAGES.PASSWORD-REQUIRED'); expect(compiled.querySelector('#password-required').innerText).toEqual('LOGIN.MESSAGES.PASSWORD-REQUIRED');
}); });
}));
it('should render no validation errors when the username and password are filled', it('should render no validation errors when the username and password are filled', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
let compiled = fixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-username'; usernameInput.value = 'fake-username';
passwordInput.value = 'fake-password'; passwordInput.value = 'fake-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.formError).toBeDefined(); expect(component.formError).toBeDefined();
expect(component.formError.username).toEqual(''); expect(component.formError.username).toEqual('');
@@ -216,223 +179,162 @@ describe('AlfrescoLogin', () => {
expect(compiled.querySelector('#username-error')).toBeNull(); expect(compiled.querySelector('#username-error')).toBeNull();
expect(compiled.querySelector('#password-required')).toBeNull(); expect(compiled.querySelector('#password-required')).toBeNull();
}); });
}));
it('should render the new values after user and password values are changed', it('should render the new values after user and password values are changed', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
let compiled = fixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-change-username'; usernameInput.value = 'fake-change-username';
passwordInput.value = 'fake-change-password'; passwordInput.value = 'fake-change-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
fixture.detectChanges(); componentFixture.detectChanges();
expect(compiled.querySelector('input[type="text"]').value).toEqual('fake-change-username'); expect(compiled.querySelector('input[type="text"]').value).toEqual('fake-change-username');
expect(compiled.querySelector('input[type="password"]').value).toEqual('fake-change-password'); expect(compiled.querySelector('input[type="password"]').value).toEqual('fake-change-password');
}); });
}));
it('should return success true after the login have succeeded ',
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
it('should return success true after the login have succeeded', () => {
expect(component.error).toBe(false); expect(component.error).toBe(false);
expect(component.success).toBe(false); expect(component.success).toBe(false);
let compiled = fixture.debugElement.nativeElement; let compiled = componentFixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-username'; usernameInput.value = 'fake-username';
passwordInput.value = 'fake-password'; passwordInput.value = 'fake-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
compiled.querySelector('button').click(); compiled.querySelector('button').click();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.error).toBe(false); expect(component.error).toBe(false);
expect(component.success).toBe(true); expect(component.success).toBe(true);
}); });
}));
it('should return error with a wrong username ',
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
it('should return error with a wrong username', () => {
expect(component.error).toBe(false); expect(component.error).toBe(false);
expect(component.success).toBe(false); expect(component.success).toBe(false);
let compiled = fixture.debugElement.nativeElement; let compiled = componentFixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-wrong-username'; usernameInput.value = 'fake-wrong-username';
passwordInput.value = 'fake-password'; passwordInput.value = 'fake-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
compiled.querySelector('button').click(); compiled.querySelector('button').click();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.error).toBe(true); expect(component.error).toBe(true);
expect(component.success).toBe(false); expect(component.success).toBe(false);
expect(compiled.querySelector('#login-error')).toBeDefined(); expect(compiled.querySelector('#login-error')).toBeDefined();
expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR'); expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR');
}); });
}));
it('should return error with a wrong password ',
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
it('should return error with a wrong password', () => {
expect(component.success).toBe(false); expect(component.success).toBe(false);
expect(component.error).toBe(false); expect(component.error).toBe(false);
let compiled = fixture.debugElement.nativeElement; let compiled = componentFixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-username'; usernameInput.value = 'fake-username';
passwordInput.value = 'fake-wrong-password'; passwordInput.value = 'fake-wrong-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
compiled.querySelector('button').click(); compiled.querySelector('button').click();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.error).toBe(true); expect(component.error).toBe(true);
expect(component.success).toBe(false); expect(component.success).toBe(false);
expect(compiled.querySelector('#login-error')).toBeDefined(); expect(compiled.querySelector('#login-error')).toBeDefined();
expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR'); expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR');
}); });
}));
it('should return error with a wrong username and password ',
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
it('should return error with a wrong username and password', () => {
expect(component.success).toBe(false); expect(component.success).toBe(false);
expect(component.error).toBe(false); expect(component.error).toBe(false);
let compiled = fixture.debugElement.nativeElement; let compiled = componentFixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-wrong-username'; usernameInput.value = 'fake-wrong-username';
passwordInput.value = 'fake-wrong-password'; passwordInput.value = 'fake-wrong-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
compiled.querySelector('button').click(); compiled.querySelector('button').click();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.error).toBe(true); expect(component.error).toBe(true);
expect(component.success).toBe(false); expect(component.success).toBe(false);
expect(compiled.querySelector('#login-error')).toBeDefined(); expect(compiled.querySelector('#login-error')).toBeDefined();
expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR'); expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR');
}); });
}));
it('should emit onSuccess event after the login has succeeded',
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
it('should emit onSuccess event after the login has succeeded', () => {
spyOn(component.onSuccess, 'emit'); spyOn(component.onSuccess, 'emit');
expect(component.error).toBe(false); expect(component.error).toBe(false);
expect(component.success).toBe(false); expect(component.success).toBe(false);
let compiled = fixture.debugElement.nativeElement; let compiled = componentFixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-username'; usernameInput.value = 'fake-username';
passwordInput.value = 'fake-password'; passwordInput.value = 'fake-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
compiled.querySelector('button').click(); compiled.querySelector('button').click();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.error).toBe(false); expect(component.error).toBe(false);
expect(component.success).toBe(true); expect(component.success).toBe(true);
@@ -440,40 +342,30 @@ describe('AlfrescoLogin', () => {
expect(compiled.querySelector('#login-success').innerHTML).toEqual('LOGIN.MESSAGES.LOGIN-SUCCESS'); expect(compiled.querySelector('#login-success').innerHTML).toEqual('LOGIN.MESSAGES.LOGIN-SUCCESS');
expect(component.onSuccess.emit).toHaveBeenCalledWith({value: 'Login OK'}); expect(component.onSuccess.emit).toHaveBeenCalledWith({value: 'Login OK'});
}); });
}));
it('should emit onError event after the login has failed',
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
component.isErrorStyle = function () {
console.log('mock');
};
it('should emit onError event after the login has failed', () => {
spyOn(component.onError, 'emit'); spyOn(component.onError, 'emit');
expect(component.success).toBe(false); expect(component.success).toBe(false);
expect(component.error).toBe(false); expect(component.error).toBe(false);
let compiled = fixture.debugElement.nativeElement; let compiled = componentFixture.debugElement.nativeElement;
let usernameInput = compiled.querySelector('#username'); let usernameInput = compiled.querySelector('#username');
let passwordInput = compiled.querySelector('#password'); let passwordInput = compiled.querySelector('#password');
fixture.detectChanges(); componentFixture.detectChanges();
usernameInput.value = 'fake-username'; usernameInput.value = 'fake-username';
passwordInput.value = 'fake-wrong-password'; passwordInput.value = 'fake-wrong-password';
usernameInput.dispatchEvent(new Event('input')); usernameInput.dispatchEvent(new Event('input'));
passwordInput.dispatchEvent(new Event('input')); passwordInput.dispatchEvent(new Event('input'));
fixture.detectChanges(); componentFixture.detectChanges();
component.onValueChanged(null); component.onValueChanged(null);
compiled.querySelector('button').click(); compiled.querySelector('button').click();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.error).toBe(true); expect(component.error).toBe(true);
expect(component.success).toBe(false); expect(component.success).toBe(false);
@@ -481,48 +373,33 @@ describe('AlfrescoLogin', () => {
expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR'); expect(compiled.querySelector('#login-error').innerText).toEqual('LOGIN.MESSAGES.LOGIN-ERROR');
expect(component.onError.emit).toHaveBeenCalledWith({value: 'Login KO'}); expect(component.onError.emit).toHaveBeenCalledWith({value: 'Login KO'});
}); });
}));
it('should render the password in clear when the toggleShowPassword is call', it('should render the password in clear when the toggleShowPassword is call', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
let compiled = fixture.debugElement.nativeElement; componentFixture.detectChanges();
fixture.detectChanges();
component.isPasswordShow = false; component.isPasswordShow = false;
component.toggleShowPassword(); component.toggleShowPassword();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.isPasswordShow).toBe(true); expect(component.isPasswordShow).toBe(true);
expect(compiled.querySelector('#password').type).toEqual('text'); expect(compiled.querySelector('#password').type).toEqual('text');
}); });
}));
it('should render the hide password when the password is in clear and the toggleShowPassword is call', it('should render the hide password when the password is in clear and the toggleShowPassword is call', () => {
inject([TestComponentBuilder], (tcb: TestComponentBuilder) => { let compiled = componentFixture.debugElement.nativeElement;
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
let component = fixture.componentInstance;
let compiled = fixture.debugElement.nativeElement; componentFixture.detectChanges();
fixture.detectChanges();
component.isPasswordShow = true; component.isPasswordShow = true;
component.toggleShowPassword(); component.toggleShowPassword();
fixture.detectChanges(); componentFixture.detectChanges();
expect(component.isPasswordShow).toBe(false); expect(component.isPasswordShow).toBe(false);
expect(compiled.querySelector('#password').type).toEqual('password'); expect(compiled.querySelector('#password').type).toEqual('password');
}); });
}));
}); });