Мы столкнулись с проблемой, когда мы хотели бы заменить объект пользовательской подписки в схеме GraphQL на лету (в основном для тестирования). В настоящее время у нас есть следующая схема:
class MySchema < GraphQL::Schema
query CustomQueryType
mutation CustomMutationType
subscription CustomSuscriptionType
use CustomSubscriptions # We want to replace this on the fly
end
CustomSubscriptions
сама является производной от GraphQL::Subscriptions
и использует некоторые внешние зависимости для хранения / запуска подписок. Во время тестирования мы не обязательно хотим иметь дело с этими зависимостями, поэтому мы хотели бы заменить подписки там на некоторые макеты или некоторые реализации, которые не требуют таких же внешних зависимостей. Например, я хотел бы сделать:
class SubscriptionsTest < ActiveSupport::TestCase
def setup
mySchema.use(MyTestSubscriptions) # This doesn't work :(
end
...
end
Однако это не удалит наш CustomSubscriptions
из схемы. Я попытался обновить схему, чтобы разрешить установку экземпляра подписки, но пока безуспешно.
Есть ли способ сделать sh то, что я после? Какой-то метод сеттера / помощника, который я пропустил?