@zendesk/laika
Version:
Test, mock, intercept and modify Apollo Client's operations — in both browser and unit tests!
43 lines • 1.7 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.observableError = exports.observableOf = exports.executeLink = exports.onNextTick = void 0;
const core_1 = require("@apollo/client/core");
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const onNextTick = (action) => new Promise((resolve, reject) => {
setTimeout(() => {
try {
resolve(action());
}
catch (error) {
reject(error);
}
});
});
exports.onNextTick = onNextTick;
const testClient = new core_1.ApolloClient({
cache: new core_1.InMemoryCache(),
link: core_1.ApolloLink.empty(),
});
const executeWithOptionalContext = core_1.execute;
const executeLink = (link, request) =>
// Apollo Client 4 requires an explicit client in the execute context, while
// Apollo Client 3 still uses the two-argument signature.
executeWithOptionalContext.length >= 3
? executeWithOptionalContext(link, request, { client: testClient })
: executeWithOptionalContext(link, request);
exports.executeLink = executeLink;
const observableOf = (...values) => new core_1.Observable((observer) => {
var _a;
values.forEach((value) => {
var _a;
(_a = observer.next) === null || _a === void 0 ? void 0 : _a.call(observer, value);
});
(_a = observer.complete) === null || _a === void 0 ? void 0 : _a.call(observer);
});
exports.observableOf = observableOf;
const observableError = (error) => new core_1.Observable((observer) => {
var _a;
(_a = observer.error) === null || _a === void 0 ? void 0 : _a.call(observer, error);
});
exports.observableError = observableError;
//# sourceMappingURL=testUtils.js.map