#17 unit test cases improvments

This commit is contained in:
mauriziovitale84
2016-05-09 12:18:49 +01:00
parent e1dd822577
commit 7494130a00
7 changed files with 105 additions and 75 deletions

View File

@@ -22,8 +22,8 @@
</div>
<div class="mdl-card__actions mdl-card--border">
<button type="submit" class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect mdl-button--colored" [disabled]="!form.valid">{{'login-button' | translate }}</button>
<div *ngIf="error" class="mdl-card__supporting-text" style="color: red;">{{'login-error-message' | translate }}</div>
<div *ngIf="success" class="mdl-card__supporting-text" style="color: blue;">{{'login-success-message' | translate }}</div>
<div *ngIf="error" id="login-error" class="mdl-card__supporting-text" style="color: red;">{{'login-error-message' | translate }}</div>
<div *ngIf="success" id="login-success" class="mdl-card__supporting-text" style="color: blue;">{{'login-success-message' | translate }}</div>
</div>
<div class="mdl-card__menu">
<div class="mdl-spinner mdl-js-spinner"></div>

View File

@@ -66,7 +66,7 @@ System.register(['angular2/core', 'angular2/router', 'angular2/common', '../serv
};
this.translationInit(translate);
this.form.valueChanges.subscribe(function (data) { return _this.onValueChanged(data); });
this.onValueChanged();
this.onValueChanged(null);
}
/**
* Method called on submit form

View File

@@ -1 +1 @@
{"version":3,"file":"alfresco-login.js","sourceRoot":"","sources":["alfresco-login.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"alfresco-login.js","sourceRoot":"","sources":["alfresco-login.ts"],"names":[],"mappings":"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"}

View File

@@ -125,13 +125,13 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
var compiled = fixture.debugElement.nativeElement;
component.form.controls['username']._value = 'us';
component.form.controls.username._value = 'us';
fixture.detectChanges();
component.onValueChanged();
fixture.detectChanges();
testing_1.expect(component.formError).toBeDefined(true);
testing_1.expect(component.formError['username']).toBeDefined(true);
testing_1.expect(component.formError['username']).toEqual('input-min-message');
testing_1.expect(component.formError.username).toBeDefined(true);
testing_1.expect(component.formError.username).toEqual('input-min-message');
testing_1.expect(compiled.querySelector('#username-error').innerText).toEqual('input-min-message');
});
}));
@@ -143,14 +143,15 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
var compiled = fixture.debugElement.nativeElement;
component.form.controls['username']._value = 'fake-user';
component.form.controls['password']._value = 'fake-password';
component.form.controls.username._value = 'fake-user';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
component.onValueChanged();
fixture.detectChanges();
testing_1.expect(component.formError).toBeDefined(true);
testing_1.expect(component.formError['username']).toEqual('');
testing_1.expect(component.formError['password']).toEqual('');
testing_1.expect(component.formError.username).toEqual('');
testing_1.expect(component.formError.password).toEqual('');
testing_1.expect(compiled.querySelector('#login-error')).toBeNull();
});
}));
testing_1.it('should render the new values after user and password values are changed', testing_1.injectAsync([testing_1.TestComponentBuilder], function (tcb) {
@@ -160,12 +161,10 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
var component = fixture.componentInstance;
component.isErrorStyle = function () {
};
fixture.detectChanges();
var compiled = fixture.debugElement.nativeElement;
var password = compiled.querySelector('input[type="password"]');
var username = compiled.querySelector('input[type="text"]');
password.value = 'my password';
username.value = 'my username';
component.form.controls.username._value = 'my username';
component.form.controls.password._value = 'my password';
fixture.detectChanges();
testing_1.expect(compiled.querySelector('input[type="password"]').value).toEqual('my password');
testing_1.expect(compiled.querySelector('input[type="text"]').value).toEqual('my username');
});
@@ -180,8 +179,9 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
var compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-username';
component.form._value.password = 'fake-password';
component.form.controls.username._value = 'fake-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
testing_1.expect(component.error).toBe(false);
@@ -197,11 +197,13 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
var compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-wrong-username';
component.form._value.password = 'fake-password';
component.form.controls.username._value = 'fake-wrong-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
testing_1.expect(fixture.componentInstance.error).toBe(true);
testing_1.expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
});
}));
testing_1.it('should return error with a wrong password ', testing_1.injectAsync([testing_1.TestComponentBuilder], function (tcb) {
@@ -213,11 +215,13 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
var compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-username';
component.form._value.password = 'fake-wrong-password';
component.form.controls.username._value = 'fake-username';
component.form.controls.password._value = 'fake-wrong-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
testing_1.expect(fixture.componentInstance.error).toBe(true);
testing_1.expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
});
}));
testing_1.it('should return error with a wrong username and password ', testing_1.injectAsync([testing_1.TestComponentBuilder], function (tcb) {
@@ -229,11 +233,13 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
var compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-wrong-username';
component.form._value.password = 'fake-wrong-password';
component.form.controls.username._value = 'fake-wrong-username';
component.form.controls.password._value = 'fake-wrong-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
testing_1.expect(fixture.componentInstance.error).toBe(true);
testing_1.expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
});
}));
testing_1.it('should emit onSuccess event after the login has succeeded', testing_1.injectAsync([testing_1.TestComponentBuilder], function (tcb) {
@@ -244,13 +250,16 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
component.isErrorStyle = function () {
};
spyOn(component.onSuccess, 'emit');
component.form._value.username = 'fake-username';
component.form._value.password = 'fake-password';
// trigger the click
var compiled = fixture.debugElement.nativeElement;
component.form.controls.username._value = 'fake-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
var nativeElement = fixture.nativeElement;
var button = nativeElement.querySelector('button');
button.dispatchEvent(new Event('click'));
fixture.detectChanges();
testing_1.expect(fixture.componentInstance.error).toBe(false);
testing_1.expect(compiled.querySelector('#login-success').innerHTML).toEqual('login-success-message');
testing_1.expect(component.onSuccess.emit).toHaveBeenCalledWith({ value: 'Login OK' });
});
}));
@@ -258,18 +267,21 @@ System.register(['angular2/platform/testing/browser', 'angular2/testing', 'angul
return tcb
.createAsync(alfresco_login_1.AlfrescoLoginComponent)
.then(function (fixture) {
//pipes.config();
var component = fixture.componentInstance;
component.isErrorStyle = function () {
};
spyOn(component.onError, 'emit');
component.form._value.username = 'fake-wrong-username';
component.form._value.password = 'fake-password';
var compiled = fixture.debugElement.nativeElement;
component.form.controls.username._value = 'fake-wrong-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
// trigger the click
var nativeElement = fixture.nativeElement;
var button = nativeElement.querySelector('button');
button.dispatchEvent(new Event('click'));
fixture.detectChanges();
testing_1.expect(fixture.componentInstance.error).toBe(true);
testing_1.expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
testing_1.expect(component.onError.emit).toHaveBeenCalledWith({ value: 'Login KO' });
});
}));

File diff suppressed because one or more lines are too long

View File

@@ -27,9 +27,9 @@ import {dispatchEvent} from 'angular2/src/testing/utils';
import {TranslateService, LangChangeEvent} from 'ng2-translate/ng2-translate';
class AuthenticationMock {
public mockName:string = 'Mocked Service';
public mockName: string = 'Mocked Service';
login(method:string, username:string, password:string) {
login(method: string, username: string, password: string) {
if (username === 'fake-username' && password === 'fake-password') {
return Observable.of(true);
} else {
@@ -37,7 +37,7 @@ class AuthenticationMock {
}
}
getProviders():Array<any> {
getProviders(): Array<any> {
return [provide(AlfrescoAuthenticationService, {useValue: this})];
}
}
@@ -54,7 +54,7 @@ class TranslationMock {
}
public get(key: string|Array<string>, interpolateParams?: Object): Observable<string|any> {
if(!key) {
if (!key) {
throw new Error('Parameter "key" required');
}
return Observable.of(key);
@@ -84,7 +84,7 @@ describe('AlfrescoLogin', () => {
location = l;
}));
it('should render `Login` form with all the keys to be translated', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should render `Login` form with all the keys to be translated', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -110,7 +110,7 @@ describe('AlfrescoLogin', () => {
});
}));
it('should render user and password input fields with default values', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should render user and password input fields with default values', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -123,7 +123,7 @@ describe('AlfrescoLogin', () => {
});
}));
it('should render min-length error when the username is lower than 4 characters', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should render min-length error when the username is lower than 4 characters', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -134,7 +134,7 @@ describe('AlfrescoLogin', () => {
let compiled = fixture.debugElement.nativeElement;
component.form.controls['username']._value = 'us';
component.form.controls.username._value = 'us';
fixture.detectChanges();
@@ -143,13 +143,13 @@ describe('AlfrescoLogin', () => {
fixture.detectChanges();
expect(component.formError).toBeDefined(true);
expect(component.formError['username']).toBeDefined(true);
expect(component.formError['username']).toEqual('input-min-message');
expect(component.formError.username).toBeDefined(true);
expect(component.formError.username).toEqual('input-min-message');
expect(compiled.querySelector('#username-error').innerText).toEqual('input-min-message');
});
}));
it('should render no errors when the username and password are correct', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should render no errors when the username and password are correct', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -160,8 +160,8 @@ describe('AlfrescoLogin', () => {
let compiled = fixture.debugElement.nativeElement;
component.form.controls['username']._value = 'fake-user';
component.form.controls['password']._value = 'fake-password';
component.form.controls.username._value = 'fake-user';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
@@ -170,12 +170,13 @@ describe('AlfrescoLogin', () => {
fixture.detectChanges();
expect(component.formError).toBeDefined(true);
expect(component.formError['username']).toEqual('');
expect(component.formError['password']).toEqual('');
expect(component.formError.username).toEqual('');
expect(component.formError.password).toEqual('');
expect(compiled.querySelector('#login-error')).toBeNull();
});
}));
it('should render the new values after user and password values are changed', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should render the new values after user and password values are changed', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -184,22 +185,18 @@ describe('AlfrescoLogin', () => {
};
fixture.detectChanges();
let compiled = fixture.debugElement.nativeElement;
component.form.controls.username._value = 'my username';
component.form.controls.password._value = 'my password';
let password = compiled.querySelector('input[type="password"]');
let username = compiled.querySelector('input[type="text"]');
password.value = 'my password';
username.value = 'my username';
fixture.detectChanges();
expect(compiled.querySelector('input[type="password"]').value).toEqual('my password');
expect(compiled.querySelector('input[type="text"]').value).toEqual('my username');
});
}));
it('should navigate to Home route after the login have succeeded ', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should navigate to Home route after the login have succeeded ', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -212,8 +209,10 @@ describe('AlfrescoLogin', () => {
let compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-username';
component.form._value.password = 'fake-password';
component.form.controls.username._value = 'fake-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
compiled.querySelector('button').click();
@@ -224,7 +223,7 @@ describe('AlfrescoLogin', () => {
});
}));
it('should return error with a wrong username ', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should return error with a wrong username ', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -235,18 +234,21 @@ describe('AlfrescoLogin', () => {
};
let compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-wrong-username';
component.form._value.password = 'fake-password';
component.form.controls.username._value = 'fake-wrong-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
expect(fixture.componentInstance.error).toBe(true);
expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
});
}));
it('should return error with a wrong password ', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should return error with a wrong password ', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -257,18 +259,21 @@ describe('AlfrescoLogin', () => {
};
let compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-username';
component.form._value.password = 'fake-wrong-password';
component.form.controls.username._value = 'fake-username';
component.form.controls.password._value = 'fake-wrong-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
expect(fixture.componentInstance.error).toBe(true);
expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
});
}));
it('should return error with a wrong username and password ', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should return error with a wrong username and password ', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -280,19 +285,22 @@ describe('AlfrescoLogin', () => {
let compiled = fixture.debugElement.nativeElement;
component.form._value.username = 'fake-wrong-username';
component.form._value.password = 'fake-wrong-password';
component.form.controls.username._value = 'fake-wrong-username';
component.form.controls.password._value = 'fake-wrong-password';
fixture.detectChanges();
compiled.querySelector('button').click();
fixture.detectChanges();
expect(fixture.componentInstance.error).toBe(true);
expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
});
}));
it('should emit onSuccess event after the login has succeeded', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should emit onSuccess event after the login has succeeded', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
@@ -302,33 +310,41 @@ describe('AlfrescoLogin', () => {
};
spyOn(component.onSuccess, 'emit');
component.form._value.username = 'fake-username';
component.form._value.password = 'fake-password';
let compiled = fixture.debugElement.nativeElement;
component.form.controls.username._value = 'fake-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
// trigger the click
let nativeElement = fixture.nativeElement;
let button = nativeElement.querySelector('button');
button.dispatchEvent(new Event('click'));
fixture.detectChanges();
expect(fixture.componentInstance.error).toBe(false);
expect(compiled.querySelector('#login-success').innerHTML).toEqual('login-success-message');
expect(component.onSuccess.emit).toHaveBeenCalledWith({value: 'Login OK'});
});
}));
it('should emit onError event after the login has failed', injectAsync([TestComponentBuilder], (tcb:TestComponentBuilder) => {
it('should emit onError event after the login has failed', injectAsync([TestComponentBuilder], (tcb: TestComponentBuilder) => {
return tcb
.createAsync(AlfrescoLoginComponent)
.then((fixture) => {
//pipes.config();
let component = fixture.componentInstance;
component.isErrorStyle = function () {
};
spyOn(component.onError, 'emit');
component.form._value.username = 'fake-wrong-username';
component.form._value.password = 'fake-password';
let compiled = fixture.debugElement.nativeElement;
component.form.controls.username._value = 'fake-wrong-username';
component.form.controls.password._value = 'fake-password';
fixture.detectChanges();
// trigger the click
let nativeElement = fixture.nativeElement;
@@ -337,6 +353,8 @@ describe('AlfrescoLogin', () => {
fixture.detectChanges();
expect(fixture.componentInstance.error).toBe(true);
expect(compiled.querySelector('#login-error').innerText).toEqual('login-error-message');
expect(component.onError.emit).toHaveBeenCalledWith({value: 'Login KO'});
});
}));

View File

@@ -81,7 +81,7 @@ export class AlfrescoLoginComponent {
this.form.valueChanges.subscribe(data => this.onValueChanged(data));
this.onValueChanged();
this.onValueChanged(null);
}
/**