Added trial and blocking to billing contract, fixed bug in running time tracker command

This commit is contained in:
Constantin Graf
2024-07-29 18:04:45 +02:00
committed by Constantin Graf
parent 7c593f8f87
commit 5b7df869ad
33 changed files with 629 additions and 187 deletions

View File

@@ -0,0 +1,51 @@
<?php
declare(strict_types=1);
namespace Tests\Unit\Middleware;
use App\Http\Middleware\HandleInertiaRequests;
use App\Service\BillingContract;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\Support\Facades\Route;
use Inertia\Inertia;
use Inertia\Testing\AssertableInertia as Assert;
use Laravel\Passport\Passport;
use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\Attributes\UsesClass;
#[CoversClass(HandleInertiaRequests::class)]
#[UsesClass(HandleInertiaRequests::class)]
class HandleInertiaRequestsMiddlewareTest extends MiddlewareTestAbstract
{
private function createTestRoute(): string
{
return Route::get('/test-route', function () {
return Inertia::render('Welcome');
})->middleware([StartSession::class, HandleInertiaRequests::class])->uri;
}
public function test_adds_billing_information_to_shared_data_of_inertia_requests(): void
{
// Arrange
$user = $this->createUserWithPermission();
$route = $this->createTestRoute();
$this->mock(BillingContract::class, function (MockInterface $mock) {
$mock->shouldReceive('hasSubscription')->andReturn(false);
$mock->shouldReceive('hasTrial')->andReturn(false);
$mock->shouldReceive('isBlocked')->andReturn(false);
});
Passport::actingAs($user->user);
// Act
$response = $this->get($route);
// Assert
$response->assertInertia(fn (Assert $page) => $page
->where('billing.has_subscription', false)
->where('billing.has_trial', false)
->where('billing.is_blocked', false)
);
}
}