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

44 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(),
]);
$firm = $firm->fresh();
expect($firm->ch_yandex)->toBeFalse()
->and($firm->ch_vk)->toBeFalse()
->and($firm->ch_mts)->toBeFalse();
});
it('отбирает фирмы по каждой площадке независимо', function () {
$tolkoYandex = SalesAdAudienceFirm::create([
'firm_name' => 'Только Яндекс', 'warmup_started_at' => now(), 'ch_yandex' => true,
]);
$vkIMts = SalesAdAudienceFirm::create([
'firm_name' => 'ВК и МТС', 'warmup_started_at' => now(), 'ch_vk' => true, 'ch_mts' => true,
]);
$vse = SalesAdAudienceFirm::create([
'firm_name' => 'Везде', 'warmup_started_at' => now(),
'ch_yandex' => true, 'ch_vk' => true, 'ch_mts' => true,
]);
$y = SalesAdAudienceFirm::forYandex()->pluck('id')->all();
$v = SalesAdAudienceFirm::forVk()->pluck('id')->all();
$m = SalesAdAudienceFirm::forMts()->pluck('id')->all();
expect($y)->toContain($tolkoYandex->id)->toContain($vse->id)->not->toContain($vkIMts->id);
expect($v)->toContain($vkIMts->id)->toContain($vse->id)->not->toContain($tolkoYandex->id);
expect($m)->toContain($vkIMts->id)->toContain($vse->id)->not->toContain($tolkoYandex->id);
});