@dbg-riskit/angular-testing
Version:
64 lines • 7.64 kB
JavaScript
import { discardPeriodicTasks, tick } from '@angular/core/testing';
import { By } from '@angular/platform-browser';
import { RISK_INITIAL_LOAD_SELECTOR, RISK_NO_DATA_SELECTOR } from '@dbg-riskit/angular-view';
import { FAKE_HTTP_ASYNC_TIMEOUT } from '../stubs/http.service.stub';
import { MessageComponentDef } from './message.def';
export class Page {
constructor(fixture) {
this.fixture = fixture;
this._timeOffset = 0;
this.debugElement = fixture.debugElement;
this.component = this.debugElement.componentInstance;
}
detectChanges(millis = 0) {
this.fixture.detectChanges();
tick(millis);
this._timeOffset += millis;
}
advanceAndDetectChanges(millis = 0) {
tick(millis);
this._timeOffset += millis;
this.detectChanges();
}
advanceHTTP() {
this.advanceAndDetectChanges(FAKE_HTTP_ASYNC_TIMEOUT);
}
advanceAndDetectChangesUsingOffset(millis) {
this.advanceAndDetectChanges(millis - this._timeOffset);
this.resetTimeOffset();
}
resetTimeOffset() {
this._timeOffset = 0;
}
destroy() {
this.fixture.destroy();
try {
// Move a lot into fututre ;)
tick(60 * 60 * 1000);
discardPeriodicTasks();
}
catch (ignore) {
// Nothing to do...
}
}
}
export class PageWithLoading extends Page {
constructor(fixture) {
super(fixture);
}
get initialLoadComponent() {
const element = this.debugElement.query(By.css(RISK_INITIAL_LOAD_SELECTOR));
if (element) {
return new MessageComponentDef(element);
}
return null;
}
get noDataComponent() {
const element = this.debugElement.query(By.css(RISK_NO_DATA_SELECTOR));
if (element) {
return new MessageComponentDef(element);
}
return null;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci10ZXN0aW5nL3NyYy9saWIvZGVmaW5pdGlvbnMvcGFnZS5iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBbUIsb0JBQW9CLEVBQUUsSUFBSSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDbkYsT0FBTyxFQUFDLEVBQUUsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQzdDLE9BQU8sRUFBQywwQkFBMEIsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQzNGLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUVsRCxNQUFNLE9BQU8sSUFBSTtJQU1iLFlBQTZCLE9BQTRCO1FBQTVCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBRmpELGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBR3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQztRQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7SUFDekQsQ0FBQztJQUVNLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUMzQixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxXQUFXLElBQUksTUFBTSxDQUFDO0lBQy9CLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQztRQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDYixJQUFJLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQztRQUMzQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsdUJBQXVCLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sa0NBQWtDLENBQUMsTUFBYztRQUNwRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVNLE9BQU87UUFDVixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLElBQUk7WUFDQSw2QkFBNkI7WUFDN0IsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7WUFDckIsb0JBQW9CLEVBQUUsQ0FBQztTQUMxQjtRQUFDLE9BQU8sTUFBTSxFQUFFO1lBQ2IsbUJBQW1CO1NBQ3RCO0lBQ0wsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGVBQW1CLFNBQVEsSUFBTztJQUUzQyxZQUFtQixPQUE0QjtRQUMzQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQVcsb0JBQW9CO1FBQzNCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO1FBQzVFLElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTyxJQUFJLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUN2RSxJQUFJLE9BQU8sRUFBRTtZQUNULE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUMzQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGVidWdFbGVtZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tcG9uZW50Rml4dHVyZSwgZGlzY2FyZFBlcmlvZGljVGFza3MsIHRpY2t9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvdGVzdGluZyc7XG5pbXBvcnQge0J5fSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7UklTS19JTklUSUFMX0xPQURfU0VMRUNUT1IsIFJJU0tfTk9fREFUQV9TRUxFQ1RPUn0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7RkFLRV9IVFRQX0FTWU5DX1RJTUVPVVR9IGZyb20gJy4uL3N0dWJzL2h0dHAuc2VydmljZS5zdHViJztcbmltcG9ydCB7TWVzc2FnZUNvbXBvbmVudERlZn0gZnJvbSAnLi9tZXNzYWdlLmRlZic7XG5cbmV4cG9ydCBjbGFzcyBQYWdlPFQ+IHtcblxuICAgIHB1YmxpYyBkZWJ1Z0VsZW1lbnQ6IERlYnVnRWxlbWVudDtcbiAgICBwdWJsaWMgY29tcG9uZW50OiBUO1xuICAgIHByaXZhdGUgX3RpbWVPZmZzZXQgPSAwO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmaXh0dXJlOiBDb21wb25lbnRGaXh0dXJlPFQ+KSB7XG4gICAgICAgIHRoaXMuZGVidWdFbGVtZW50ID0gZml4dHVyZS5kZWJ1Z0VsZW1lbnQ7XG4gICAgICAgIHRoaXMuY29tcG9uZW50ID0gdGhpcy5kZWJ1Z0VsZW1lbnQuY29tcG9uZW50SW5zdGFuY2U7XG4gICAgfVxuXG4gICAgcHVibGljIGRldGVjdENoYW5nZXMobWlsbGlzID0gMCk6IHZvaWQge1xuICAgICAgICB0aGlzLmZpeHR1cmUuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aWNrKG1pbGxpcyk7XG4gICAgICAgIHRoaXMuX3RpbWVPZmZzZXQgKz0gbWlsbGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZHZhbmNlQW5kRGV0ZWN0Q2hhbmdlcyhtaWxsaXMgPSAwKTogdm9pZCB7XG4gICAgICAgIHRpY2sobWlsbGlzKTtcbiAgICAgICAgdGhpcy5fdGltZU9mZnNldCArPSBtaWxsaXM7XG4gICAgICAgIHRoaXMuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBhZHZhbmNlSFRUUCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZHZhbmNlQW5kRGV0ZWN0Q2hhbmdlcyhGQUtFX0hUVFBfQVNZTkNfVElNRU9VVCk7XG4gICAgfVxuXG4gICAgcHVibGljIGFkdmFuY2VBbmREZXRlY3RDaGFuZ2VzVXNpbmdPZmZzZXQobWlsbGlzOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hZHZhbmNlQW5kRGV0ZWN0Q2hhbmdlcyhtaWxsaXMgLSB0aGlzLl90aW1lT2Zmc2V0KTtcbiAgICAgICAgdGhpcy5yZXNldFRpbWVPZmZzZXQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcmVzZXRUaW1lT2Zmc2V0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90aW1lT2Zmc2V0ID0gMDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5maXh0dXJlLmRlc3Ryb3koKTtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIC8vIE1vdmUgYSBsb3QgaW50byBmdXR1dHJlIDspXG4gICAgICAgICAgICB0aWNrKDYwICogNjAgKiAxMDAwKTtcbiAgICAgICAgICAgIGRpc2NhcmRQZXJpb2RpY1Rhc2tzKCk7XG4gICAgICAgIH0gY2F0Y2ggKGlnbm9yZSkge1xuICAgICAgICAgICAgLy8gTm90aGluZyB0byBkby4uLlxuICAgICAgICB9XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGFnZVdpdGhMb2FkaW5nPFQ+IGV4dGVuZHMgUGFnZTxUPiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoZml4dHVyZTogQ29tcG9uZW50Rml4dHVyZTxUPikge1xuICAgICAgICBzdXBlcihmaXh0dXJlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGluaXRpYWxMb2FkQ29tcG9uZW50KCk6IE1lc3NhZ2VDb21wb25lbnREZWYgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcyhSSVNLX0lOSVRJQUxfTE9BRF9TRUxFQ1RPUikpO1xuICAgICAgICBpZiAoZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNZXNzYWdlQ29tcG9uZW50RGVmKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbm9EYXRhQ29tcG9uZW50KCk6IE1lc3NhZ2VDb21wb25lbnREZWYgfCBudWxsIHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZGVidWdFbGVtZW50LnF1ZXJ5KEJ5LmNzcyhSSVNLX05PX0RBVEFfU0VMRUNUT1IpKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybiBuZXcgTWVzc2FnZUNvbXBvbmVudERlZihlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59XG4iXX0=