33acb436e9
Регионы выводились в конституционном порядке (республики → края → области), из-за чего список выглядел кашей (Дагестан → Донецкая Народная → Ингушетия → Кабардино-Балкарская). Добавлен REGIONS_ALPHA: сортировка по «настоящему» имени, слова-типы (Республика/область/край/ автономный округ) отбрасываются — Татарстан на «Т», Адыгея на «А». Подставлен во все 7 выпадашек автоподбора. Тест regionsAlpha.spec.ts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
34 lines
2.3 KiB
TypeScript
34 lines
2.3 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { REGIONS, REGIONS_ALPHA } from '../../resources/js/constants/regions';
|
|
|
|
const names = () => REGIONS_ALPHA.map((r) => r.name);
|
|
const idx = (name: string) => names().indexOf(name);
|
|
|
|
describe('REGIONS_ALPHA — регионы для выпадашек, по сути названия', () => {
|
|
it('исключает sentinel «Вся РФ» (code 0) и содержит все остальные регионы', () => {
|
|
expect(REGIONS_ALPHA.some((r) => r.code === 0)).toBe(false);
|
|
expect(REGIONS_ALPHA).toHaveLength(REGIONS.length - 1);
|
|
});
|
|
|
|
it('первым идёт «Республика Адыгея» (Адыгея — раньше Алтая/Амурской)', () => {
|
|
expect(names()[0]).toBe('Республика Адыгея');
|
|
});
|
|
|
|
it('республики встают по своему имени, а не сваливаются в кучу на «Р»', () => {
|
|
// Отбрасываем тип: «Республика Татарстан» → «Татарстан» → буква Т,
|
|
// поэтому она ПОСЛЕ «Свердловской области» (С), а не рядом с другими Р.
|
|
expect(idx('Республика Татарстан')).toBeGreaterThan(idx('Свердловская область'));
|
|
expect(idx('Республика Татарстан')).toBeGreaterThan(idx('Тамбовская область'));
|
|
expect(idx('Республика Татарстан')).toBeLessThan(idx('Тверская область'));
|
|
});
|
|
|
|
it('«Донецкая Народная Республика» сортируется по «Донецкая» (Д), рядом с Дагестаном', () => {
|
|
expect(idx('Республика Дагестан')).toBeLessThan(idx('Донецкая Народная Республика'));
|
|
expect(idx('Донецкая Народная Республика')).toBeLessThan(idx('Республика Ингушетия'));
|
|
});
|
|
|
|
it('края и области — тоже по имени: «Краснодарский» и «Красноярский» рядом', () => {
|
|
expect(idx('Красноярский край')).toBe(idx('Краснодарский край') + 1);
|
|
});
|
|
});
|