44 lines
1.7 KiB
PHP
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);
|
|
});
|