54 lines
1.4 KiB
TypeScript
54 lines
1.4 KiB
TypeScript
// import {makeExecutableSchema} from '@graphql-tools/schema';
|
|
// import {addMocksToSchema} from '@graphql-tools/mock';
|
|
// import {graphql} from 'graphql';
|
|
|
|
// const schemaString = '';
|
|
|
|
interface GraphQLBody {
|
|
operationName: string
|
|
}
|
|
|
|
interface CypressAliasRequest extends Request {
|
|
alias?: string;
|
|
}
|
|
|
|
interface GraphQLRequestPayload {
|
|
operationName: string;
|
|
query: string;
|
|
variables: any;
|
|
}
|
|
|
|
const isGraphQLBody = (body: any): body is GraphQLBody => {
|
|
return (body as GraphQLBody).operationName !== undefined;
|
|
};
|
|
|
|
export const hasOperationName = (req: Request, operationName: string) => {
|
|
const {body} = req;
|
|
return isGraphQLBody(body) && body.operationName === operationName;
|
|
};
|
|
|
|
export const aliasQuery = (req: CypressAliasRequest, operationName: string) => {
|
|
if (hasOperationName(req, operationName)) {
|
|
req.alias = `gql${operationName}Query`;
|
|
}
|
|
};
|
|
|
|
export const aliasMutation = (req: CypressAliasRequest, operationName: string) => {
|
|
if (hasOperationName(req, operationName)) {
|
|
req.alias = `gql${operationName}Mutation`;
|
|
}
|
|
};
|
|
|
|
// export const makeRequest = (req: CypressAliasRequest, alias: string) => {
|
|
// const schema = makeExecutableSchema({typeDefs: schemaString});
|
|
// const schemaWithMocks = addMocksToSchema({schema});
|
|
//
|
|
// const {body} = req;
|
|
//
|
|
// o;
|
|
// const paylaod = JSON.parse(body);
|
|
//
|
|
// return graphql(schemaWithMocks, query)
|
|
// .then(result => result);
|
|
// };
|