@dbg-riskit/angular-testing
Version:
54 lines • 6.6 kB
JavaScript
import { EventEmitter, Injectable } from '@angular/core';
import { of, throwError as _throwError, timer } from 'rxjs';
import { switchMap } from 'rxjs/operators';
import * as i0 from "@angular/core";
export const FAKE_HTTP_ASYNC_TIMEOUT = 1000;
export class HttpServiceStub {
constructor() {
this.value = [];
this.error = [];
this.unauthorized = new EventEmitter();
}
returnValue(value) {
this.value.push(value);
}
popReturnValue() {
return this.value.pop();
}
shiftReturnValue() {
return this.value.shift();
}
throwError(value) {
this.error.push(value);
}
get(request) {
if (this.error.length) {
const error = this.error.shift();
return _throwError(error);
}
const value = this.value.shift();
return of(value);
}
post(request) {
return this.get(request);
}
}
HttpServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HttpServiceStub, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
HttpServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HttpServiceStub });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HttpServiceStub, decorators: [{
type: Injectable
}] });
export class HttpAsyncServiceStub extends HttpServiceStub {
get(request, auth = true) {
return timer(FAKE_HTTP_ASYNC_TIMEOUT).pipe(switchMap(() => super.get(request)));
}
post(request) {
return this.get(request);
}
}
HttpAsyncServiceStub.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HttpAsyncServiceStub, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
HttpAsyncServiceStub.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HttpAsyncServiceStub });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.6", ngImport: i0, type: HttpAsyncServiceStub, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5zZXJ2aWNlLnN0dWIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLXRlc3Rpbmcvc3JjL2xpYi9zdHVicy9odHRwLnNlcnZpY2Uuc3R1Yi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUd2RCxPQUFPLEVBQWEsRUFBRSxFQUFFLFVBQVUsSUFBSSxXQUFXLEVBQUUsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFekMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsSUFBSSxDQUFDO0FBRzVDLE1BQU0sT0FBTyxlQUFlO0lBRDVCO1FBR1ksVUFBSyxHQUFRLEVBQUUsQ0FBQztRQUNoQixVQUFLLEdBQW1CLEVBQUUsQ0FBQztRQUU1QixpQkFBWSxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO0tBOEJ4RTtJQTVCVSxXQUFXLENBQUMsS0FBUTtRQUN2QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sY0FBYztRQUNqQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVNLGdCQUFnQjtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFtQjtRQUNqQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRU0sR0FBRyxDQUFDLE9BQW1CO1FBQzFCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUU7WUFDbkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNqQyxPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtRQUNELE1BQU0sS0FBSyxHQUFrQixJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2hELE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFFTSxJQUFJLENBQUMsT0FBMkI7UUFDbkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7OzRHQWxDUSxlQUFlO2dIQUFmLGVBQWU7MkZBQWYsZUFBZTtrQkFEM0IsVUFBVTs7QUF1Q1gsTUFBTSxPQUFPLG9CQUF3QixTQUFRLGVBQWtCO0lBRXBELEdBQUcsQ0FBQyxPQUFtQixFQUFFLElBQUksR0FBRyxJQUFJO1FBQ3ZDLE9BQU8sS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUMsSUFBSSxDQUN0QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUN0QyxDQUFDO0lBQ04sQ0FBQztJQUVNLElBQUksQ0FBQyxPQUEyQjtRQUNuQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7aUhBVlEsb0JBQW9CO3FIQUFwQixvQkFBb0I7MkZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UmVxdWVzdCwgUmVxdWVzdFdpdGhEYXRhfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge0Vycm9yTWVzc2FnZX0gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIHRocm93RXJyb3IgYXMgX3Rocm93RXJyb3IsIHRpbWVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBGQUtFX0hUVFBfQVNZTkNfVElNRU9VVCA9IDEwMDA7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBIdHRwU2VydmljZVN0dWI8VD4ge1xuXG4gICAgcHJpdmF0ZSB2YWx1ZTogVFtdID0gW107XG4gICAgcHJpdmF0ZSBlcnJvcjogRXJyb3JNZXNzYWdlW10gPSBbXTtcblxuICAgIHB1YmxpYyB1bmF1dGhvcml6ZWQ6IEV2ZW50RW1pdHRlcjxFcnJvck1lc3NhZ2U+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHVibGljIHJldHVyblZhbHVlKHZhbHVlOiBUKSB7XG4gICAgICAgIHRoaXMudmFsdWUucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHBvcFJldHVyblZhbHVlKCk6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZS5wb3AoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2hpZnRSZXR1cm5WYWx1ZSgpOiBUIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUuc2hpZnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgdGhyb3dFcnJvcih2YWx1ZTogRXJyb3JNZXNzYWdlKSB7XG4gICAgICAgIHRoaXMuZXJyb3IucHVzaCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldChyZXF1ZXN0OiBSZXF1ZXN0PFQ+KTogT2JzZXJ2YWJsZTxUIHwgdW5kZWZpbmVkPiB7XG4gICAgICAgIGlmICh0aGlzLmVycm9yLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3IgPSB0aGlzLmVycm9yLnNoaWZ0KCk7XG4gICAgICAgICAgICByZXR1cm4gX3Rocm93RXJyb3IoZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHZhbHVlOiBUIHwgdW5kZWZpbmVkID0gdGhpcy52YWx1ZS5zaGlmdCgpO1xuICAgICAgICByZXR1cm4gb2YodmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwb3N0KHJlcXVlc3Q6IFJlcXVlc3RXaXRoRGF0YTxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQocmVxdWVzdCk7XG4gICAgfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSHR0cEFzeW5jU2VydmljZVN0dWI8VD4gZXh0ZW5kcyBIdHRwU2VydmljZVN0dWI8VD4ge1xuXG4gICAgcHVibGljIGdldChyZXF1ZXN0OiBSZXF1ZXN0PFQ+LCBhdXRoID0gdHJ1ZSk6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGltZXIoRkFLRV9IVFRQX0FTWU5DX1RJTUVPVVQpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gc3VwZXIuZ2V0KHJlcXVlc3QpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHB1YmxpYyBwb3N0KHJlcXVlc3Q6IFJlcXVlc3RXaXRoRGF0YTxUPik6IE9ic2VydmFibGU8VCB8IHVuZGVmaW5lZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXQocmVxdWVzdCk7XG4gICAgfVxufVxuIl19