【问题标题】:Lighthouse testing with postGraphQL fails when using subscriptions使用订阅时使用 postGraphQL 进行 Lighthouse 测试失败
【发布时间】:2020-05-30 10:33:47
【问题描述】:

我有一个 laravel 包,它使用 GraphQL (Lighthouse) 来扩展我的基础项目。添加我的包和进行查询等时一切正常。

但由于我尝试在我的测试文件中发出 postGraphQL 请求,其中给定的查询或突变使用 @broadcast 指令,因此请求失败并显示:

Add the SubscriptionServiceProvider to your config/app.php to enable subscriptions.

SubscriptionServiceProvider 在启动测试环境时被添加到 app config 的 providers 数组中。我使用 orchestra/testbench 并在 getEnvironmentSetUp 方法中添加提供程序。

但我认为生成的 postGraphQL 请求没有添加SubscriptionServiceProvider。 我将其追溯到 Illuminate\Foundation\Testing\Concerns\MakesHttpRequest 类,该类创建了一个新的 kernel 对象,该对象执行请求并且似乎没有按应有的方式启动。

也许问题是我在一个 laravel 包中,而不是在一个“常规”laravel 项目中,在 config/app.php 中定义SubscriptionServiceProvider

这是一个错误还是我错过了什么?这里有人也有这个问题吗?不幸的是,我在这里找不到任何东西或谷歌搜索。

【问题讨论】:

    标签: phpunit graphql-subscriptions laravel-lighthouse


    【解决方案1】:

    我解决了! 我现在没有尝试使用 Orchestra 的 getEnvironmentSetUp 方法将 SubscriptionServiceProvider 添加到应用程序环境中,而是将其与 LighthouseServiceProvider 一起添加到方法中,如下所示:

    protected function getPackageProviders($app)
    {
        return [
            LighthouseServiceProvider::class,
            SubscriptionServiceProvider::class,
            MyOwnPackageProvider::class,
        ];
    }
    

    它就像一个魅力:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-05-15
      • 2021-03-09
      • 1970-01-01
      • 2017-02-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-02
      相关资源
      最近更新 更多