Аполлон тестирование - закрыть контекст - PullRequest
0 голосов
/ 06 апреля 2019

При использовании apollo-сервера с express я открываю контекст (соединение с базой данных), который необходимо закрыть. Поэтому я делаю это так:

const server = new ApolloServer({
    schema,
    playground: config.enableGraphiQL,
    context: (req: express.Request) => req.res.locals.context
});

const app = express();

app.use((req, res, next) => {
    logger.debug('Query start');
    res.locals.context = new Context();

    next();

    res.on("finish", () => {
        logger.debug('Query finish');
        const context: Context = res.locals.context;
        context.connection.close();
    });
});

server.applyMiddleware({ app });

При использовании createTestClient из apollo-server-testing я не знаю, как его закрыть. Вот код:

const server = new ApolloServerBase({
    schema,
    context: () => new Context()    //// FIXME: not closing
});

const client = createTestClient(server);

Итак, соединение с базой данных не закрыто. Как получить крюк / событие, информирующее о том, что освобождение закончилось?

...