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

38 lines
1.6 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
use App\Models\SalesAdAudiencePlatform;
use App\Models\SalesAdAudienceState;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Support\Facades\DB;
use Tests\Concerns\SharesSupplierPdo;
uses(DatabaseTransactions::class, SharesSupplierPdo::class);
it('создаёт три строки площадок с верными порогами', function () {
$rows = SalesAdAudiencePlatform::query()->pluck('min_phones', 'platform');
expect($rows)->toHaveKeys(['yandex', 'vk', 'mts'])
->and($rows['yandex'])->toBe(100)
->and($rows['vk'])->toBe(2000)
->and($rows['mts'])->toBe(5000);
});
it('переносит рубильник и сегмент Яндекса из state в строку yandex', function () {
SalesAdAudienceState::current()->update(['enabled' => true, 'yandex_segment_id' => 58034825]);
DB::connection('pgsql_supplier')->table('sales_ad_audience_platforms')->where('platform', 'yandex')->delete();
DB::connection('pgsql_supplier')->statement(<<<'SQL'
INSERT INTO sales_ad_audience_platforms
(platform, enabled, min_phones, external_id, last_synced_at, last_error, status, updated_at)
SELECT 'yandex', COALESCE(s.enabled, false), 100, s.yandex_segment_id, s.last_synced_at, s.last_error, 'ok', now()
FROM sales_ad_audience_state s WHERE s.id = true
ON CONFLICT (platform) DO NOTHING
SQL);
$yandex = SalesAdAudiencePlatform::forCode('yandex');
expect($yandex->enabled)->toBeTrue()
->and($yandex->external_id)->toBe(58034825);
});