Files
portal/app/tests/Frontend/regionsAlpha.spec.ts
T
Дмитрий 33acb436e9 fix(autopodbor): регионы в выпадашках — сортировка по сути названия
Регионы выводились в конституционном порядке (республики → края →
области), из-за чего список выглядел кашей (Дагестан → Донецкая
Народная → Ингушетия → Кабардино-Балкарская). Добавлен REGIONS_ALPHA:
сортировка по «настоящему» имени, слова-типы (Республика/область/край/
автономный округ) отбрасываются — Татарстан на «Т», Адыгея на «А».
Подставлен во все 7 выпадашек автоподбора. Тест regionsAlpha.spec.ts.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-07 16:27:44 +03:00

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);
});
});