37 lines
1.7 KiB
PHP
37 lines
1.7 KiB
PHP
<?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();
|
||
});
|