teqo/tests/unit/municipalityMapNavigation.unit.spec.ts
Francisco Ignácio Fontoura Solla 4806c417c8 Engineering Pass 3: consolidate patterns and lock them with guards.
Fold duplicated campanha access, loaders, list/filter/form shells, and scripts into shared modules; reorganize utilities by domain; stabilize e2e; and document prevention-first audit workflow so the same smells cannot creep back in.
2026-07-29 06:11:29 -03:00

49 lines
1.6 KiB
TypeScript

import { describe, expect, it } from 'vitest'
import {
buildMunicipalitiesByIbgeCode,
buildMunicipalitiesByMapKey,
mapKeyForMunicipality,
} from '@/utilities/municipality/municipalityMapNavigation'
const abaira = { slug: 'abaira', name: 'Abaíra', ibgeCode: '2900108', kind: 'municipio' } as const
const salvadorZe1 = {
slug: 'salvador-ze-1',
name: 'Salvador — ZE 1',
ibgeCode: '2927408',
kind: 'zona',
} as const
const salvadorZe2 = {
slug: 'salvador-ze-2',
name: 'Salvador — ZE 2',
ibgeCode: '2927408',
kind: 'zona',
} as const
describe('municipalityMapNavigation', () => {
it('buildMunicipalitiesByIbgeCode groups municipalities by ibgeCode and sorts by name', () => {
const result = buildMunicipalitiesByIbgeCode([salvadorZe2, salvadorZe1, abaira])
expect(result['2900108']).toEqual([{ slug: 'abaira', name: 'Abaíra' }])
expect(result['2927408']).toEqual([
{ slug: 'salvador-ze-1', name: 'Salvador — ZE 1' },
{ slug: 'salvador-ze-2', name: 'Salvador — ZE 2' },
])
})
it('keys zone municipalities by slug and everything else by codarea', () => {
expect(mapKeyForMunicipality(abaira)).toBe('2900108')
expect(mapKeyForMunicipality(salvadorZe1)).toBe('salvador-ze-1')
})
it('gives every zone its own map key instead of pooling them under the city', () => {
const byMapKey = buildMunicipalitiesByMapKey([salvadorZe1, salvadorZe2, abaira])
expect(byMapKey).toEqual({
'2900108': 'abaira',
'salvador-ze-1': 'salvador-ze-1',
'salvador-ze-2': 'salvador-ze-2',
})
expect(byMapKey['2927408']).toBeUndefined()
})
})