33 lines
1.1 KiB
PHP
Executable File
33 lines
1.1 KiB
PHP
Executable File
<?php
|
|
|
|
namespace Modules\Warehouse\tests\Feature;
|
|
|
|
use App\Models\User;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Modules\Company\Models\Company;
|
|
use Modules\Platform\app\Models\LicenseKey;
|
|
use Modules\Warehouse\app\Models\Warehouse;
|
|
use Tests\TestCase;
|
|
|
|
class WarehouseIsolationTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
|
|
public function test_company_user_only_sees_their_warehouses(): void
|
|
{
|
|
$companyA = Company::create(['name' => 'A Ltd', 'slug' => 'a-ltd']);
|
|
$companyB = Company::create(['name' => 'B Ltd', 'slug' => 'b-ltd']);
|
|
LicenseKey::issueFor($companyA, 'A licence');
|
|
|
|
$user = User::factory()->create(['company_id' => $companyA->id]);
|
|
Warehouse::create(['company_id' => $companyA->id, 'code' => 'A1', 'name' => 'A Warehouse']);
|
|
Warehouse::create(['company_id' => $companyB->id, 'code' => 'B1', 'name' => 'B Warehouse']);
|
|
|
|
$this->actingAs($user)
|
|
->get('/warehouses')
|
|
->assertOk()
|
|
->assertSee('A Warehouse')
|
|
->assertDontSee('B Warehouse');
|
|
}
|
|
}
|