Как я могу протестировать подписки на сервер Apollo с помощью jest?

#typescript #jestjs #graphql #apollo #apollo-server

#typescript #jestjs #graphql #apollo #apollo-сервер

Вопрос:

Я использовал apollo-testing-library для написания интеграционных тестов, это позволяет мне изменять и запрашивать, но не подписываться и тестировать. Мой вопрос в том, есть ли у кого-нибудь какие-либо методы, которые они использовали, или знают способ подделать подписку с помощью Jest?

Ответ №1:

Я определенно опаздываю на вечеринку, и это не совсем ясный ответ. Но, пройдя через то же самое препятствие, я подумал, что кто-то может найти это полезным.

Мое решение в конечном итоге стало Сквозным тестированием подписок.

Имея в виду, что я:

  • Загрузите мой существующий сервер graphql
  • Создайте клиент apollo в node
  • Создайте подписки в моем тесте

Я написал здесь примерную суть:

https://gist.github.com/patrixr/2536ee396d488bd5e38b0278513eefeb

Комментарии:

1. Мне тоже нужно это сделать, и я рассматриваю superwstest ( github.com/davidje13/superwstest#readme ) поскольку мои тесты запросов / мутаций уже используются supertest . Вы вообще изучали это? Мне нравится ваш подход к использованию фактического ApolloClient, но он больше похож на настройку.

2. @jamis0n не знал об superwstest этом, может быть вариант. Вы правы, что настройка Apollo — это сложная настройка, но в конце концов она окупилась, поскольку мы можем тестировать сервер с тем же стеком, который работает на интерфейсе.