UNPKG

apollo-link-debounce

Version:
133 lines 5.1 kB
"use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; exports.__esModule = true; var apollo_link_1 = require("apollo-link"); var TestLink = (function (_super) { __extends(TestLink, _super); function TestLink() { var _this = _super.call(this) || this; _this.operations = []; return _this; } TestLink.prototype.request = function (operation) { this.operations.push(operation); return new apollo_link_1.Observable(function (observer) { if (operation.getContext().testError) { setTimeout(function () { return observer.error(operation.getContext().testError); }, 0); return; } setTimeout(function () { return observer.next(operation.getContext().testResponse); }, 0); setTimeout(function () { return observer.complete(); }, 0); }); }; return TestLink; }(apollo_link_1.ApolloLink)); exports.TestLink = TestLink; var TestSequenceLink = (function (_super) { __extends(TestSequenceLink, _super); function TestSequenceLink() { var _this = _super.call(this) || this; _this.operations = []; return _this; } TestSequenceLink.prototype.request = function (operation, forward) { if (!operation.getContext().testSequence) { return forward(operation); } this.operations.push(operation); return new apollo_link_1.Observable(function (observer) { operation.getContext().testSequence.forEach(function (event) { if (event.type === 'error') { setTimeout(function () { return observer.error(event.value); }, event.delay || 0); return; } if (event.type === 'next') { setTimeout(function () { return observer.next(event.value); }, event.delay || 0); } if (event.type === 'complete') { setTimeout(function () { return observer.complete(); }, event.delay || 0); } }); }); }; return TestSequenceLink; }(apollo_link_1.ApolloLink)); exports.TestSequenceLink = TestSequenceLink; function mergeObservables() { var observables = []; for (var _i = 0; _i < arguments.length; _i++) { observables[_i] = arguments[_i]; } return new apollo_link_1.Observable(function (observer) { var numObservables = observables.length; var completedObservables = 0; observables.forEach(function (o) { o.subscribe({ next: observer.next.bind(observer), error: observer.error.bind(observer), complete: function () { completedObservables++; if (completedObservables === numObservables) { observer.complete(); } } }); }); }); } exports.mergeObservables = mergeObservables; function toResultValue(e) { var obj = __assign({}, e); delete obj.delay; return obj; } exports.toResultValue = toResultValue; exports.assertObservableSequence = function (observable, sequence, initializer) { if (initializer === void 0) { initializer = function () { return undefined; }; } var index = 0; if (sequence.length === 0) { throw new Error('Observable sequence must have at least one element'); } return new Promise(function (resolve, reject) { var sub = observable.subscribe({ next: function (value) { expect({ type: 'next', value: value }).toEqual(sequence[index]); index++; if (index === sequence.length) { resolve(true); } }, error: function (value) { expect({ type: 'error', value: value }).toEqual(sequence[index]); index++; expect(undefined).toEqual(sequence[index]); resolve(true); }, complete: function () { expect({ type: 'complete' }).toEqual(sequence[index]); index++; expect(undefined).toEqual(sequence[index]); resolve(true); } }); initializer(sub); }); }; //# sourceMappingURL=TestUtils.js.map