31 lines
1.2 KiB
PHP
31 lines
1.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use App\Support\RubricKey;
|
|
|
|
test('регистр, лишние пробелы и пунктуация ключ не меняют', function () {
|
|
expect(RubricKey::make('Окна'))->toBe(RubricKey::make(' окна '))
|
|
->and(RubricKey::make('Окна'))->toBe(RubricKey::make('«Окна».'))
|
|
->and(RubricKey::make('Ремонт, стройка'))->toBe(RubricKey::make('ремонт стройка'));
|
|
});
|
|
|
|
test('ё и е — одна буква', function () {
|
|
expect(RubricKey::make('Клёны'))->toBe(RubricKey::make('Клены'));
|
|
});
|
|
|
|
test('латинские двойники в русском слове приводятся к кириллице', function () {
|
|
// «Окнa» — последняя буква латинская.
|
|
expect(RubricKey::make("Окн\u{0061}"))->toBe(RubricKey::make('Окна'));
|
|
});
|
|
|
|
test('чисто латинское название не калечится', function () {
|
|
expect(RubricKey::make('SPA'))->toBe('spa')
|
|
->and(RubricKey::make('IT'))->toBe('it');
|
|
});
|
|
|
|
test('пустая строка даёт пустой ключ', function () {
|
|
expect(RubricKey::make(null))->toBe('')
|
|
->and(RubricKey::make(' '))->toBe('');
|
|
});
|