34 lines
1.2 KiB
PHP
34 lines
1.2 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
declare(strict_types=1);
|
||
|
|
|
||
|
|
use App\Models\SalesAdAudienceFirm;
|
||
|
|
use App\Models\SalesAdAudienceFirmChannel;
|
||
|
|
use Illuminate\Foundation\Testing\DatabaseTransactions;
|
||
|
|
use Illuminate\Support\Carbon;
|
||
|
|
use Tests\Concerns\SharesSupplierPdo;
|
||
|
|
|
||
|
|
uses(DatabaseTransactions::class, SharesSupplierPdo::class);
|
||
|
|
|
||
|
|
it('создаёт канал через связь фирмы с верными кастами и хелпером channel()', function () {
|
||
|
|
$firm = SalesAdAudienceFirm::create(['firm_name' => 'Стоматология', 'firm_inn' => '7700000123']);
|
||
|
|
|
||
|
|
$channel = $firm->firmChannels()->create([
|
||
|
|
'channel' => 'yandex',
|
||
|
|
'status' => 'warming',
|
||
|
|
'mode' => 'funnel',
|
||
|
|
'warming_started_at' => now(),
|
||
|
|
'warmed_times' => 1,
|
||
|
|
]);
|
||
|
|
|
||
|
|
expect($channel)->toBeInstanceOf(SalesAdAudienceFirmChannel::class)
|
||
|
|
->and($channel->status)->toBeString()->toBe('warming')
|
||
|
|
->and($channel->mode)->toBeString()->toBe('funnel')
|
||
|
|
->and($channel->warmed_times)->toBeInt()->toBe(1)
|
||
|
|
->and($channel->warming_started_at)->toBeInstanceOf(Carbon::class);
|
||
|
|
|
||
|
|
$firm->refresh();
|
||
|
|
expect($firm->channel('yandex'))->not->toBeNull()
|
||
|
|
->and($firm->channel('yandex')->status)->toBe('warming');
|
||
|
|
});
|