使用订阅时使用 postGraphQL 进行的 Lighthouse 测试失败

Lighthouse testing with postGraphQL fails when using subscriptions

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

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

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

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

但我认为生成的 postGraphQL 请求没有添加 SubscriptionServiceProvider。 我将其追溯到 Illuminate\Foundation\Testing\Concerns\MakesHttpRequest class,它创建了一个新的 kernel 对象来执行请求,但似乎没有按预期启动。

也许问题是我在 laravel 包中而不是在 "regular" laravel 项目中,在 [=28= 中定义 SubscriptionServiceProvider ]config/app.php.

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

我解决了! 我现在没有尝试使用 orchestra 的 getEnvironmentSetUp 方法将 SubscriptionServiceProvider 添加到应用程序环境中,而是将其与 一起添加到方法 getPackageProviders 中]LighthouseServiceProvider 像这样:

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

它就像一个魅力:)