75 lines
2.2 KiB
PHP
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);
|
|
});
|