Я создаю тест для проверки возможности ежемесячной подписки через конечную точку API. У меня есть наблюдатель подписки, который назначает пользователю роль на основе его подписки при создании новой подписки, и это вызывает у меня некоторые проблемы с тестированием.
У меня есть SubscriptionObserver, который имеет следующее:
/**
* Handle the subscription "created" event.
*
* @param \App\Subscription $subscription
* @return void
*/
public function created(Subscription $subscription)
{
($subscription->stripe_plan == 'monthly') ? auth()->user()->assignRole('basic-user') : auth()->user()->assignRole('premium-user');
}
Мой тест:
/** @test */
public function it_can_create_a_monthly_subscription()
{
$data = [
'plan' => 'monthly',
'payment' => 'pm_card_visa',
];
$response = $this->actingAs($this->unsubscribedUser, 'api')->post('api/subscriptions', $data);
$response
->assertSuccessful()
->assertJsonStructure([
"subscription_created",
"subscription" => [
"name",
"stripe_id",
"stripe_status",
"stripe_plan",
"quantity"
]
]);
}
Я получаю ошибку:
1) Tests\Feature\SubscriptionTest::it_can_create_a_monthly_subscription
Error: Call to a member function assignRole() on null
Любые предложения о том, как я могу решить эту проблему?