Repository URL to install this package:
|
Version:
0.0.6 ▾
|
"use strict";
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)
t[p[i]] = s[p[i]];
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
const apollo_server_core_1 = require("apollo-server-core");
const graphql_1 = require("graphql");
const validateGraphQLResponse_1 = require("./validateGraphQLResponse");
exports.createTestClient = (serverOrServerWithMock) => {
const server = serverOrServerWithMock instanceof apollo_server_core_1.ApolloServerBase
? serverOrServerWithMock
: serverOrServerWithMock.server;
const mockRequestInternals = serverOrServerWithMock
.mockRequestInternals;
const executeOperationReference = server.executeOperation.bind(server);
const executeOperation = async (request) => {
try {
const response = await executeOperationReference(request);
validateGraphQLResponse_1.validateGraphQLResponse(response);
return response;
}
catch (validationException) {
console.error('!!! validation');
throw validationException;
}
};
const test = async (_a) => {
var { query, mutation } = _a, args = __rest(_a, ["query", "mutation"]);
const operation = query || mutation;
if ((!query && !mutation) || (query && mutation)) {
throw new Error('Either `query` or `mutation` must be passed, but not both.');
}
if (args.http) {
const headers = args.http.headers;
headers.forEach((value, key) => {
// @todo: logger.debug
console.debug(`setting header ${key}=${value}`);
mockRequestInternals.headers.set(key, value);
});
}
const queryOperation = typeof operation === 'string' ? operation : graphql_1.print(operation);
return executeOperation(Object.assign({
// Convert ASTs, which are produced by `graphql-tag` but not currently
// used by `executeOperation`, to a String using `graphql/language/print`.
query: queryOperation }, args));
};
return { query: test, mutate: test };
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlVGVzdENsaWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcmVhdGVUZXN0Q2xpZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUEsMkRBQXFEO0FBRXJELHFDQUE2QztBQUM3Qyx1RUFBbUU7QUErQ3RELFFBQUEsZ0JBQWdCLEdBQUcsQ0FDOUIsc0JBRTZDLEVBQzdDLEVBQUU7SUFDRixNQUFNLE1BQU0sR0FDVixzQkFBc0IsWUFBWSxxQ0FBZ0I7UUFDaEQsQ0FBQyxDQUFDLHNCQUFzQjtRQUN4QixDQUFDLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUFBO0lBQ25DLE1BQU0sb0JBQW9CLEdBQUksc0JBQW9FO1NBQy9GLG9CQUFvQixDQUFBO0lBRXZCLE1BQU0seUJBQXlCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtJQUN0RSxNQUFNLGdCQUFnQixHQUFHLEtBQUssRUFBRSxPQUF1QixFQUFFLEVBQUU7UUFDekQsSUFBSTtZQUNGLE1BQU0sUUFBUSxHQUFHLE1BQU0seUJBQXlCLENBQUMsT0FBTyxDQUFDLENBQUE7WUFDekQsaURBQXVCLENBQUMsUUFBUSxDQUFDLENBQUE7WUFDakMsT0FBTyxRQUFRLENBQUE7U0FDaEI7UUFBQyxPQUFPLG1CQUFtQixFQUFFO1lBQzVCLE9BQU8sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUMvQixNQUFNLG1CQUFtQixDQUFBO1NBQzFCO0lBQ0gsQ0FBQyxDQUFBO0lBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUFFLEVBQThDLEVBQUUsRUFBRTtZQUFsRCxFQUFFLEtBQUssRUFBRSxRQUFRLE9BQTZCLEVBQTNCLHdDQUFPO1FBQzVDLE1BQU0sU0FBUyxHQUFHLEtBQUssSUFBSSxRQUFRLENBQUE7UUFFbkMsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksUUFBUSxDQUFDLEVBQUU7WUFDaEQsTUFBTSxJQUFJLEtBQUssQ0FDYiw0REFBNEQsQ0FDN0QsQ0FBQTtTQUNGO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFrQixDQUFBO1lBQzVDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUU7Z0JBQzdCLHNCQUFzQjtnQkFDdEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDLENBQUE7Z0JBQy9DLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQzlDLENBQUMsQ0FBQyxDQUFBO1NBQ0g7UUFFRCxNQUFNLGNBQWMsR0FDbEIsT0FBTyxTQUFTLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUU5RCxPQUFPLGdCQUFnQjtZQUNyQixzRUFBc0U7WUFDdEUsMEVBQTBFO1lBQzFFLEtBQUssRUFBRSxjQUFjLElBQ2pCLElBQTJCLEVBQy9CLENBQUE7SUFDSixDQUFDLENBQUE7SUFFRCxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUE7QUFDdEMsQ0FBQyxDQUFBIn0=