feat(sales): руками введённые телефоны контактов чистятся при сохранении (формат 79…, дубли долой)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,3 +15,16 @@ it('normalizes russian phones to +7XXXXXXXXXX', function (string $input, ?string
|
||||
['+1 202 555 0143', null], // 11 цифр, но начинается не с 7/8
|
||||
['', null],
|
||||
]);
|
||||
|
||||
it('чистит список контактных телефонов: нормализует к 79…, дубли схлопывает, неизвестное не теряет', function (array $input, array $expected) {
|
||||
expect(PhoneNormalizer::cleanContactList($input))->toBe($expected);
|
||||
})->with([
|
||||
'десять цифр → 79' => [['9135191264'], ['79135191264']],
|
||||
'одиннадцать с 8 → 79' => [['89135191264'], ['79135191264']],
|
||||
'форматированный с +7 → 79' => [['+7 913 519-12-64'], ['79135191264']],
|
||||
'три формы одного номера → один' => [['9135191264', '89135191264', '+7 913 519-12-64'], ['79135191264']],
|
||||
'порядок первого вхождения сохраняется' => [['9135191264', '9991112233'], ['79135191264', '79991112233']],
|
||||
'нераспознанное — оставляем как ввёл' => [['12345'], ['12345']],
|
||||
'пустые строки отбрасываются' => [['', ' ', '9135191264'], ['79135191264']],
|
||||
'нераспознанное дедуп по цифрам' => [['12345', '12345'], ['12345']],
|
||||
]);
|
||||
|
||||
Reference in New Issue
Block a user