使用订阅时使用 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,
];
}
它就像一个魅力:)
我有一个 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,
];
}
它就像一个魅力:)