43 lines
1.7 KiB
PHP
43 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Models\SalesAdAudienceFirm;
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
|
use Tests\Concerns\SharesSupplierPdo;
|
|
|
|
uses(DatabaseTransactions::class, SharesSupplierPdo::class);
|
|
|
|
it('новая фирма по умолчанию греется в Яндексе', function () {
|
|
$firm = SalesAdAudienceFirm::create([
|
|
'firm_name' => 'Тестовая стоматология',
|
|
'warmup_started_at' => now(),
|
|
]);
|
|
|
|
expect($firm->fresh()->channels)->toBe('yandex');
|
|
});
|
|
|
|
it('отбирает фирмы по площадке, «обе» попадают в оба отбора', function () {
|
|
$yandex = SalesAdAudienceFirm::create([
|
|
'firm_name' => 'Только Яндекс', 'warmup_started_at' => now(), 'channels' => 'yandex',
|
|
]);
|
|
$vk = SalesAdAudienceFirm::create([
|
|
'firm_name' => 'Только ВК', 'warmup_started_at' => now(), 'channels' => 'vk',
|
|
]);
|
|
$both = SalesAdAudienceFirm::create([
|
|
'firm_name' => 'И там и там', 'warmup_started_at' => now(), 'channels' => 'both',
|
|
]);
|
|
|
|
$forYandex = SalesAdAudienceFirm::forYandex()->pluck('id')->all();
|
|
$forVk = SalesAdAudienceFirm::forVk()->pluck('id')->all();
|
|
|
|
expect($forYandex)->toContain($yandex->id)->toContain($both->id)->not->toContain($vk->id);
|
|
expect($forVk)->toContain($vk->id)->toContain($both->id)->not->toContain($yandex->id);
|
|
});
|
|
|
|
it('не принимает выдуманную площадку', function () {
|
|
SalesAdAudienceFirm::create([
|
|
'firm_name' => 'Кривая', 'warmup_started_at' => now(), 'channels' => 'telegram',
|
|
]);
|
|
})->throws(Illuminate\Database\QueryException::class);
|