create([ 'subscription_expires_at' => now()->addDay(), 'subscription_is_trial' => true, 'subscription_product_id' => 'monthly', ]); expect($user->canAnalyzeMeals())->toBeTrue() ->and($user->analysisAccessLevel())->toBe('trial'); }); it('grants analysis access to active subscribers', function () { $user = User::factory()->create([ 'subscription_expires_at' => now()->addYear(), 'subscription_is_trial' => false, 'subscription_product_id' => 'yearly', ]); expect($user->canAnalyzeMeals())->toBeTrue() ->and($user->analysisAccessLevel())->toBe('subscribed'); }); it('keeps publishing accounts free without a subscription', function () { $user = User::factory()->create([ 'subscription_expires_at' => now()->subDay(), 'subscription_is_trial' => true, 'subscription_product_id' => 'monthly', ]); expect($user->canAnalyzeMeals())->toBeFalse() ->and($user->analysisAccessLevel())->toBe('free'); });