Files
portal/app/tests/Unit/Import/StatusRuToSlugMapperTest.php
T

37 lines
1.7 KiB
PHP
Raw Normal View History

<?php
declare(strict_types=1);
use App\Services\Import\StatusRuToSlugMapper;
test('старые русские статусы поставщика мапятся в 5 новых slug-ов', function (): void {
$m = new StatusRuToSlugMapper;
expect($m->toSlug('Новые'))->toBe('new')
->and($m->toSlug('Просмотрено'))->toBe('viewed')
->and($m->toSlug('Проработан'))->toBe('in_progress')
->and($m->toSlug('Переговоры'))->toBe('in_progress')
->and($m->toSlug('Конечный недозвон'))->toBe('in_progress')
->and($m->toSlug('Оплачено'))->toBe('won')
->and($m->toSlug('Закрыто и не реализовано'))->toBe('lost');
});
test('новые русские названия 5-статусной воронки мапятся', function (): void {
$m = new StatusRuToSlugMapper;
expect($m->toSlug('Новая сделка'))->toBe('new')
->and($m->toSlug('В работе'))->toBe('in_progress')
->and($m->toSlug('Сделка'))->toBe('won')
->and($m->toSlug('Не реализовано'))->toBe('lost')
->and($m->map())->toHaveCount(18); // 5 новых + 13 старых RU-названий
});
test('тримит пробелы вокруг значения', function (): void {
expect((new StatusRuToSlugMapper)->toSlug(' Переговоры '))->toBe('in_progress');
});
test('возвращает null для неизвестного статуса', function (): void {
expect((new StatusRuToSlugMapper)->toSlug('Абракадабра'))->toBeNull()
->and((new StatusRuToSlugMapper)->toSlug(''))->toBeNull();
});