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(); });