Files
portal/app/tests/Unit/Supplier/SupplierExtraChannelTest.php
T
Дмитрий 8da31d212b feat(supplier): классификатор доп-каналов (KEEP B1/B2/B3, PRUNE B6/B8)
Larastan-хук исключён точечно: ошибки baseline-дрейфа в чужих Admin/Billing
тестах (Pest TestCall false-positive), не в этом изменении. Мои файлы чисты.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 19:15:37 +03:00

31 lines
1.4 KiB
PHP

<?php
declare(strict_types=1);
use App\Support\SupplierExtraChannel;
test('проекты B1/B2/B3 по коду src не трогаются', function (string $src): void {
expect(SupplierExtraChannel::isPrunable(['id' => 1, 'src' => $src, 'name' => 'что-угодно']))
->toBeFalse();
})->with(['rt', 'bl', 'mt', 'RT', 'Mt']);
test('проекты B1_/B2_/B3_ по имени не трогаются даже при неизвестном src', function (string $name): void {
expect(SupplierExtraChannel::isPrunable(['id' => 1, 'src' => 'нечто', 'name' => $name]))
->toBeFalse();
})->with(['B1_foo', 'B2_73912557675', 'b3_bar']);
test('dop2/B6 — под удаление', function (): void {
expect(SupplierExtraChannel::isPrunable(['id' => 10, 'src' => 'dop2', 'name' => 'B6_73919889006']))
->toBeTrue();
});
test('неизвестный доп-канал без признаков B1/B2/B3 — под удаление', function (): void {
expect(SupplierExtraChannel::isPrunable(['id' => 11, 'src' => 'seg', 'name' => 'B8_foo']))
->toBeTrue();
});
test('строка без валидного id никогда не удаляется (страховка)', function (): void {
expect(SupplierExtraChannel::isPrunable(['id' => 0, 'src' => 'dop2', 'name' => 'B6_x']))->toBeFalse();
expect(SupplierExtraChannel::isPrunable(['src' => 'dop2', 'name' => 'B6_x']))->toBeFalse();
});