Files
reservas/tests/Feature/DatabaseSeederTest.php
joaomiranda 9b8b21c853
Some checks failed
tests / ci (push) Has been cancelled
fix: make local login recovery safe
2026-08-05 14:21:18 +01:00

39 lines
1.4 KiB
PHP

<?php
use App\Domain\Identity\Enums\RoleName;
use App\Domain\Inventory\Models\SnipeAsset;
use App\Models\User;
use Database\Seeders\DatabaseSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Facades\Hash;
uses(RefreshDatabase::class);
it('repõe identidades de desenvolvimento sem duplicar dados', function () {
config()->set('services.snipe_it.url', null);
config()->set('services.snipe_it.read_token', null);
$this->seed(DatabaseSeeder::class);
$this->seed(DatabaseSeeder::class);
$admin = User::query()->where('email', 'admin@escola.pt')->firstOrFail();
expect(User::query()->count())->toBe(2)
->and($admin->roles()->count())->toBe(4)
->and($admin->hasRole(RoleName::Administrator))->toBeTrue()
->and(Hash::check('password', $admin->password))->toBeTrue()
->and(SnipeAsset::query()->count())->toBe(18);
});
it('não mistura ativos fictícios com o cache Snipe-IT configurado', function () {
config()->set('services.snipe_it.url', 'https://inventory.example.test');
config()->set('services.snipe_it.read_token', 'read-token-for-tests');
$realAsset = SnipeAsset::factory()->create();
$this->seed(DatabaseSeeder::class);
expect(SnipeAsset::query()->count())->toBe(1)
->and(SnipeAsset::query()->firstOrFail()->is($realAsset))->toBeTrue()
->and(User::query()->where('email', 'admin@escola.pt')->exists())->toBeTrue();
});