Files
portal/app/tests/Feature/Sales/AdAudienceFirmModelTest.php
T

40 lines
1.3 KiB
PHP

<?php
declare(strict_types=1);
use App\Models\SalesAdAudienceFirm;
use App\Models\SalesAdAudiencePhone;
use App\Models\SalesAdAudienceState;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Tests\Concerns\SharesSupplierPdo;
uses(DatabaseTransactions::class, SharesSupplierPdo::class);
it('хранит снимок фирмы и её номера', function () {
$firm = SalesAdAudienceFirm::create([
'firm_inn' => '7700000001',
'firm_name' => 'Тестовая стоматология',
'city' => 'Москва',
'payload' => ['rubric' => 'Стоматологии'],
'contacts' => [['name' => 'Директор', 'phones' => ['79990000001']]],
]);
SalesAdAudiencePhone::create([
'phone' => '79990000001',
'firm_id' => $firm->id,
'expires_at' => now()->addDays(3),
]);
expect($firm->fresh()->payload)->toBe(['rubric' => 'Стоматологии'])
->and($firm->phones()->count())->toBe(1);
});
it('отдаёт все сроки одним списком', function () {
$state = SalesAdAudienceState::current();
expect($state->durations())
->toHaveKey('warmup_days')
->toHaveKey('registered_days')
->and($state->durations()['in_work_days'])->toBe(14);
});