Files
daily-meal-api/tests/Feature/SubscriptionAccessTest.php
T
leonm 2ece4b6e3e
CI / 🧪 Tests Laravel (push) Successful in 2m48s
CI / 🐳 Build & Push Image (push) Successful in 3m0s
feat: subscriptions
2026-08-07 11:53:46 +02:00

41 lines
1.1 KiB
PHP

<?php
use App\Models\User;
use Illuminate\Foundation\Testing\RefreshDatabase;
uses(RefreshDatabase::class);
it('grants analysis access during the generic trial', function () {
$user = User::factory()->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');
});