create([ 'trial_ends_at' => now()->addDay(), ]); expect($user->canAnalyzeMeals())->toBeTrue() ->and($user->analysisAccessLevel())->toBe('trial'); }); it('grants analysis access to active subscribers', function () { $user = User::factory()->create([ 'trial_ends_at' => now()->subDay(), ]); $user->subscriptions()->create([ 'type' => 'default', 'stripe_id' => 'sub_active', 'stripe_status' => 'active', 'stripe_price' => 'price_subscription', ]); expect($user->canAnalyzeMeals())->toBeTrue() ->and($user->analysisAccessLevel())->toBe('subscribed'); }); it('keeps publishing accounts free without analysis access after the trial', function () { $user = User::factory()->create([ 'trial_ends_at' => now()->subDay(), ]); expect($user->canAnalyzeMeals())->toBeFalse() ->and($user->analysisAccessLevel())->toBe('free'); });