20-02-2026
This commit is contained in:
parent
854ce02bf6
commit
4d6b4930b2
128 changed files with 18247 additions and 2093 deletions
81
tests/Feature/Models/PartnerRelationshipsTest.php
Normal file
81
tests/Feature/Models/PartnerRelationshipsTest.php
Normal file
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
use App\Models\Hub;
|
||||
use App\Models\Partner;
|
||||
use App\Models\Product;
|
||||
use App\Models\User;
|
||||
|
||||
test('partner belongs to hub', function () {
|
||||
$hub = Hub::factory()->create();
|
||||
$partner = Partner::factory()->create(['hub_id' => $hub->id]);
|
||||
|
||||
expect($partner->hub->id)->toBe($hub->id);
|
||||
});
|
||||
|
||||
test('partner has many users', function () {
|
||||
$partner = Partner::factory()->create();
|
||||
User::factory()->count(3)->create(['partner_id' => $partner->id]);
|
||||
|
||||
expect($partner->users)->toHaveCount(3);
|
||||
});
|
||||
|
||||
test('partner has many products', function () {
|
||||
$partner = Partner::factory()->create();
|
||||
Product::factory()->count(2)->create(['partner_id' => $partner->id]);
|
||||
|
||||
expect($partner->products)->toHaveCount(2);
|
||||
});
|
||||
|
||||
test('partner can have parent partner (broker)', function () {
|
||||
$broker = Partner::factory()->estateAgent()->create();
|
||||
$customer = Partner::factory()->create(['parent_partner_id' => $broker->id]);
|
||||
|
||||
expect($customer->parentPartner->id)->toBe($broker->id);
|
||||
expect($customer->broker()->first()->id)->toBe($broker->id);
|
||||
});
|
||||
|
||||
test('partner can have child partners (customers)', function () {
|
||||
$broker = Partner::factory()->estateAgent()->create();
|
||||
Partner::factory()->count(2)->create(['parent_partner_id' => $broker->id]);
|
||||
|
||||
expect($broker->childPartners)->toHaveCount(2);
|
||||
expect($broker->customers)->toHaveCount(2);
|
||||
});
|
||||
|
||||
test('partner factory has retailer state', function () {
|
||||
$partner = Partner::factory()->retailer()->create();
|
||||
|
||||
expect($partner->type->value)->toBe('Retailer');
|
||||
});
|
||||
|
||||
test('partner factory has manufacturer state', function () {
|
||||
$partner = Partner::factory()->manufacturer()->create();
|
||||
|
||||
expect($partner->type->value)->toBe('Manufacturer');
|
||||
});
|
||||
|
||||
test('partner factory has estateAgent state', function () {
|
||||
$partner = Partner::factory()->estateAgent()->create();
|
||||
|
||||
expect($partner->type->value)->toBe('Estate-Agent');
|
||||
});
|
||||
|
||||
test('partner casts opening_hours to array', function () {
|
||||
$hours = ['mon' => '09:00-18:00', 'tue' => '09:00-18:00'];
|
||||
$partner = Partner::factory()->create(['opening_hours' => $hours]);
|
||||
|
||||
$partner->refresh();
|
||||
|
||||
expect($partner->opening_hours)->toBeArray();
|
||||
expect($partner->opening_hours['mon'])->toBe('09:00-18:00');
|
||||
});
|
||||
|
||||
test('partner casts specialties to array', function () {
|
||||
$specialties = ['Küchen', 'Wohnzimmer', 'Schlafzimmer'];
|
||||
$partner = Partner::factory()->create(['specialties' => $specialties]);
|
||||
|
||||
$partner->refresh();
|
||||
|
||||
expect($partner->specialties)->toBeArray();
|
||||
expect($partner->specialties)->toHaveCount(3);
|
||||
});
|
||||
Loading…
Add table
Add a link
Reference in a new issue