b2in/tests/Feature/RestoreBackupSeederTest.php
2026-02-20 17:57:50 +01:00

75 lines
2.2 KiB
PHP

<?php
declare(strict_types=1);
use App\Models\Brand;
use App\Models\Partner;
use App\Models\RegistrationCode;
use App\Models\User;
use Database\Seeders\RestoreBackupSeeder;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
beforeEach(function () {
$this->seed(RestoreBackupSeeder::class);
});
test('seeder creates expected number of roles', function () {
expect(Role::count())->toBe(6);
});
test('seeder creates expected roles with correct names', function () {
expect(Role::pluck('name')->sort()->values()->all())
->toBe(['Admin', 'Broker', 'Customer', 'Manufacturer', 'Retailer', 'Super-Admin']);
});
test('seeder creates all 21 permissions', function () {
expect(Permission::count())->toBe(21);
});
test('seeder creates 12 partners', function () {
expect(Partner::count())->toBe(12);
});
test('seeder creates 13 users including soft-deleted', function () {
expect(User::withTrashed()->count())->toBe(13);
expect(User::onlyTrashed()->count())->toBe(4);
});
test('seeder assigns correct roles to users', function () {
$admin = User::find(1);
expect($admin)->not->toBeNull()
->and($admin->hasRole('Admin'))->toBeTrue();
$manufacturer = User::find(11);
expect($manufacturer)->not->toBeNull()
->and($manufacturer->hasRole('Manufacturer'))->toBeTrue();
$retailer = User::find(15);
expect($retailer)->not->toBeNull()
->and($retailer->hasRole('Retailer'))->toBeTrue();
});
test('seeder creates 2 brands linked to partners', function () {
expect(Brand::count())->toBe(2);
expect(Brand::find(1)->partner_id)->toBe(15);
expect(Brand::find(2)->partner_id)->toBe(10);
});
test('seeder creates 20 registration codes', function () {
expect(RegistrationCode::count())->toBe(20);
});
test('seeder preserves user-partner relationships', function () {
$user = User::find(12);
expect($user->partner_id)->toBe(11);
expect($user->partner->company_name)->toBe('Max Möbelmann');
});
test('seeder can be run multiple times without errors', function () {
$this->seed(RestoreBackupSeeder::class);
expect(User::withTrashed()->count())->toBe(13);
expect(Role::count())->toBe(6);
expect(Partner::count())->toBe(12);
});