@dbg-riskit/angular-testing
Version:
51 lines • 7.8 kB
JavaScript
import { tick } from '@angular/core/testing';
import { MatButton } from '@angular/material/button';
import { By } from '@angular/platform-browser';
import { NoopAnimationMessageComponent, RISK_ERROR_SELECTOR, RISK_GOOD_SELECTOR } from '@dbg-riskit/angular-view';
import { ByUtil } from '../by.util';
import { click, setNgModelValue } from '../events';
import { MessageComponentDef } from './message.def';
import { Page } from './page.base';
export class LoginPage extends Page {
constructor(fixture) {
super(fixture);
}
get formElement() {
return this.debugElement.query(By.css('form'));
}
get usernameElement() {
return this.formElement.query(By.css('input[name=username]'));
}
set username(username) {
setNgModelValue(this.usernameElement, username);
}
get passwordElement() {
return this.formElement.query(By.css('input[name=password]'));
}
set password(password) {
setNgModelValue(this.passwordElement, password);
}
get loginButtonElement() {
return this.formElement.query(By.directive(MatButton));
}
get successMessage() {
const debugElement = this.debugElement.query(ByUtil.and(By.directive(NoopAnimationMessageComponent), By.css(RISK_GOOD_SELECTOR)));
if (!debugElement) {
return null;
}
return new MessageComponentDef(debugElement);
}
get errorMessage() {
const debugElement = this.debugElement.query(ByUtil.or(ByUtil.and(By.directive(NoopAnimationMessageComponent), By.css(RISK_ERROR_SELECTOR)), By.css('h3')));
if (!debugElement) {
return null;
}
return new MessageComponentDef(debugElement);
}
clickLogin() {
click(this.loginButtonElement.nativeElement);
tick();
this.detectChanges();
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4ucGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItdGVzdGluZy9zcmMvbGliL2RlZmluaXRpb25zL2xvZ2luLnBhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFtQixJQUFJLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDbkQsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBRTdDLE9BQU8sRUFBQyw2QkFBNkIsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hILE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFDbEMsT0FBTyxFQUFDLEtBQUssRUFBRSxlQUFlLEVBQUMsTUFBTSxXQUFXLENBQUM7QUFDakQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxhQUFhLENBQUM7QUFFakMsTUFBTSxPQUFPLFNBQVUsU0FBUSxJQUFvQjtJQUUvQyxZQUFtQixPQUF5QztRQUN4RCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELElBQVcsUUFBUSxDQUFDLFFBQWdCO1FBQ2hDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBVyxRQUFRLENBQUMsUUFBZ0I7UUFDaEMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFXLGNBQWM7UUFDckIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQ3hDLE1BQU0sQ0FBQyxHQUFHLENBQ04sRUFBRSxDQUFDLFNBQVMsQ0FBQyw2QkFBNkIsQ0FBQyxFQUMzQyxFQUFFLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDZixPQUFPLElBQUksQ0FBQztTQUNmO1FBQ0QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQ3hDLE1BQU0sQ0FBQyxFQUFFLENBQ0wsTUFBTSxDQUFDLEdBQUcsQ0FDTixFQUFFLENBQUMsU0FBUyxDQUFDLDZCQUE2QixDQUFDLEVBQzNDLEVBQUUsQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxFQUNoQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ2YsT0FBTyxJQUFJLENBQUM7U0FDZjtRQUNELE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRU0sVUFBVTtRQUNiLEtBQUssQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsSUFBSSxFQUFFLENBQUM7UUFDUCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEZWJ1Z0VsZW1lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtDb21wb25lbnRGaXh0dXJlLCB0aWNrfSBmcm9tICdAYW5ndWxhci9jb3JlL3Rlc3RpbmcnO1xuaW1wb3J0IHtNYXRCdXR0b259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQge0J5fSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7TG9naW5Db21wb25lbnR9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItbG9naW4nO1xuaW1wb3J0IHtOb29wQW5pbWF0aW9uTWVzc2FnZUNvbXBvbmVudCwgUklTS19FUlJPUl9TRUxFQ1RPUiwgUklTS19HT09EX1NFTEVDVE9SfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtCeVV0aWx9IGZyb20gJy4uL2J5LnV0aWwnO1xuaW1wb3J0IHtjbGljaywgc2V0TmdNb2RlbFZhbHVlfSBmcm9tICcuLi9ldmVudHMnO1xuaW1wb3J0IHtNZXNzYWdlQ29tcG9uZW50RGVmfSBmcm9tICcuL21lc3NhZ2UuZGVmJztcbmltcG9ydCB7UGFnZX0gZnJvbSAnLi9wYWdlLmJhc2UnO1xuXG5leHBvcnQgY2xhc3MgTG9naW5QYWdlIGV4dGVuZHMgUGFnZTxMb2dpbkNvbXBvbmVudD4ge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKGZpeHR1cmU6IENvbXBvbmVudEZpeHR1cmU8TG9naW5Db21wb25lbnQ+KSB7XG4gICAgICAgIHN1cGVyKGZpeHR1cmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9ybUVsZW1lbnQoKTogRGVidWdFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcygnZm9ybScpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHVzZXJuYW1lRWxlbWVudCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRWxlbWVudC5xdWVyeShCeS5jc3MoJ2lucHV0W25hbWU9dXNlcm5hbWVdJykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdXNlcm5hbWUodXNlcm5hbWU6IHN0cmluZykge1xuICAgICAgICBzZXROZ01vZGVsVmFsdWUodGhpcy51c2VybmFtZUVsZW1lbnQsIHVzZXJuYW1lKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBhc3N3b3JkRWxlbWVudCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRWxlbWVudC5xdWVyeShCeS5jc3MoJ2lucHV0W25hbWU9cGFzc3dvcmRdJykpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGFzc3dvcmQocGFzc3dvcmQ6IHN0cmluZykge1xuICAgICAgICBzZXROZ01vZGVsVmFsdWUodGhpcy5wYXNzd29yZEVsZW1lbnQsIHBhc3N3b3JkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvZ2luQnV0dG9uRWxlbWVudCgpOiBEZWJ1Z0VsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtRWxlbWVudC5xdWVyeShCeS5kaXJlY3RpdmUoTWF0QnV0dG9uKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdWNjZXNzTWVzc2FnZSgpOiBNZXNzYWdlQ29tcG9uZW50RGVmIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRlYnVnRWxlbWVudCA9IHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KFxuICAgICAgICAgICAgQnlVdGlsLmFuZChcbiAgICAgICAgICAgICAgICBCeS5kaXJlY3RpdmUoTm9vcEFuaW1hdGlvbk1lc3NhZ2VDb21wb25lbnQpLFxuICAgICAgICAgICAgICAgIEJ5LmNzcyhSSVNLX0dPT0RfU0VMRUNUT1IpKSk7XG4gICAgICAgIGlmICghZGVidWdFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE1lc3NhZ2VDb21wb25lbnREZWYoZGVidWdFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yTWVzc2FnZSgpOiBNZXNzYWdlQ29tcG9uZW50RGVmIHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IGRlYnVnRWxlbWVudCA9IHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KFxuICAgICAgICAgICAgQnlVdGlsLm9yKFxuICAgICAgICAgICAgICAgIEJ5VXRpbC5hbmQoXG4gICAgICAgICAgICAgICAgICAgIEJ5LmRpcmVjdGl2ZShOb29wQW5pbWF0aW9uTWVzc2FnZUNvbXBvbmVudCksXG4gICAgICAgICAgICAgICAgICAgIEJ5LmNzcyhSSVNLX0VSUk9SX1NFTEVDVE9SKSksXG4gICAgICAgICAgICAgICAgQnkuY3NzKCdoMycpKSk7XG4gICAgICAgIGlmICghZGVidWdFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbmV3IE1lc3NhZ2VDb21wb25lbnREZWYoZGVidWdFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2xpY2tMb2dpbigpIHtcbiAgICAgICAgY2xpY2sodGhpcy5sb2dpbkJ1dHRvbkVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIHRpY2soKTtcbiAgICAgICAgdGhpcy5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxufVxuIl19