apollo-server/packages/apollo-server-express/src/connectApollo.test.ts

31 lines
1.1 KiB
TypeScript
Raw Normal View History

import connect from 'connect';
import query from 'qs-middleware';
import { ApolloServer, registerServer } from './ApolloServer';
import { Config } from 'apollo-server-core';
import 'mocha';
import testSuite, {
schema as Schema,
CreateAppOptions,
} from 'apollo-server-integration-testsuite';
function createConnectApp(options: CreateAppOptions = {}) {
const app = connect();
// We do require users of ApolloServer with connect to use a query middleware
// first. The alternative is to add a 'isConnect' bool to ServerRegistration
// and make qs-middleware be a dependency of this package. However, we don't
// think many folks use connect outside of Meteor anyway, and anyone using
// connect is probably already using connect-query or qs-middleware.
app.use(query());
const server = new ApolloServer(
(options.graphqlOptions as Config) || { schema: Schema },
);
// See comment on ServerRegistration.app for its typing.
registerServer({ app: app as any, server });
return app;
}
describe('integration:Connect', () => {
testSuite(createConnectApp);
});