teqo/tests/unit/electionPartySpectrum.unit.spec.ts
Francisco Ignácio Fontoura Solla 0c1127b35a Pass 2 W4a: electionInsights.ts deletado (941 linhas, 71 exports, 2 vivos)
- formatElectionNumber -> src/lib/electionFormat.ts (13 importers); computeVoteTrend + tipos -> src/lib/voteTrend.ts
- ~52 exports sem consumidor deletados (limiares 35/20/10 da era nucleos, gap vs 2022, conversao, mobilizacao, ticket flip/leverage) - decisao D2; formulas no git history; E10 nasce em modulo novo (nota no plano classificacao-territorial-relativa.md)
- specs: voteTrend.unit.spec.ts (pins vivos + pin do defeito E18 de fracao), electionPartySpectrum.unit.spec.ts sem os blocos de ticket; electionInsights.unit.spec.ts deletado
- fix de regressao W2 pega pelo knip: scripts/import-projecao.mjs importava voteEstimate/slug nos paths antigos (knip agora roda sem pipe mascarando exit code)
- knip unused exports: 157 -> 140
2026-07-25 14:57:49 -03:00

39 lines
1.2 KiB
TypeScript

// @vitest-environment node
import { describe, expect, it } from 'vitest'
import {
BA_2022_FEDERAL_PARTIES,
normalizePartySigla,
partySpectrum,
} from '@/lib/electionPartySpectrum'
describe('partySpectrum', () => {
it('classifies left-wing parties from the 2022 survey', () => {
expect(partySpectrum('PT')).toBe('esquerda')
expect(partySpectrum('PSOL')).toBe('esquerda')
expect(partySpectrum('PCdoB')).toBe('esquerda')
})
it('classifies right-wing parties from the 2022 survey', () => {
expect(partySpectrum('PL')).toBe('direita')
expect(partySpectrum('PSDB')).toBe('direita')
expect(partySpectrum('MDB')).toBe('direita')
})
it('normalizes TSE aliases before lookup', () => {
expect(normalizePartySigla('UNIAO')).toBe('UNIÃO')
expect(partySpectrum('UNIAO')).toBe('direita')
expect(partySpectrum('PC DO B')).toBe('esquerda')
})
it('returns null for unknown siglas', () => {
expect(partySpectrum('PARTIDO NOVO DESCONHECIDO')).toBeNull()
})
it('covers parties present in the BA 2022 federal fixture', () => {
for (const party of BA_2022_FEDERAL_PARTIES) {
expect(partySpectrum(party)).not.toBeNull()
}
})
})