Substitui o modelo de MunicipalityUpdate (kind/semanal/urgente/nota/sinal + signalType) por um modelo unificado: body obrigatório + polarity (boa/neutra/ruim) + urgent + adversarySignal. - Schema: polarity enum obrigatório, urgent boolean default false, adversarySignal boolean - Wizard: novo WizardUpdateBodyStep com campo de texto + polaridade + urgente - Lista: controle unificado de atualização com polaridade inline - Feed: exibe polaridade como badge colorido + indicador de urgência - V2 status strip: atualização rápida de polaridade - E11: queries atualizadas para polarity + adversarySignal - Migração: 20260807_030000_unify_municipality_update (backfill polarity=neutra, urgent de kind, adversarySignal de kind+signalType) - Testes: 18/18 integração C87, 593/593 total, 1399/1399 unitários - Fix: testes de state deputy usavam nomes fixos que colidiam entre execuções
35 lines
1.4 KiB
TypeScript
35 lines
1.4 KiB
TypeScript
import { describe, expect, it } from 'vitest'
|
|
|
|
import { CAMPAIGN_ACTIONS_HOME } from '@/lib/campaignActionRoutes'
|
|
import {
|
|
resolveWizardVotesSkip,
|
|
WIZARD_CHAIN_SKIP_LABEL,
|
|
WIZARD_DISMISS_ARIA_LABEL,
|
|
wizardFlowChromeAriaLabel,
|
|
wizardFlowTitleForSlug,
|
|
wizardMunicipalityChromeAriaLabel,
|
|
} from '@/lib/campaignWizardCopy'
|
|
|
|
describe('campaignWizardCopy', () => {
|
|
it('maps wizard slugs to home action flow titles', () => {
|
|
expect(wizardFlowTitleForSlug('atualizar-votos')).toBe('Ajustar votos')
|
|
expect(wizardFlowTitleForSlug('registrar-atualizacao')).toBe('Registrar atualização')
|
|
expect(wizardFlowTitleForSlug('inventado')).toBe('Continuar')
|
|
})
|
|
|
|
it('builds wizard chrome aria labels from shared copy', () => {
|
|
expect(wizardFlowChromeAriaLabel('Ajustar votos')).toBe('Ação: Ajustar votos')
|
|
expect(wizardMunicipalityChromeAriaLabel('Cairu')).toBe('Município em atualização: Cairu')
|
|
expect(WIZARD_DISMISS_ARIA_LABEL).toBe('Sair da ação')
|
|
})
|
|
|
|
it('uses the shared chain skip label for embedded vote adjustments', () => {
|
|
expect(WIZARD_CHAIN_SKIP_LABEL).toBe('Pular')
|
|
expect(resolveWizardVotesSkip(undefined, 'cairu')).toBeUndefined()
|
|
expect(resolveWizardVotesSkip('update-votes', 'cairu')).toBeUndefined()
|
|
expect(resolveWizardVotesSkip('change-trend', 'cairu')).toEqual({
|
|
label: WIZARD_CHAIN_SKIP_LABEL,
|
|
href: `${CAMPAIGN_ACTIONS_HOME}/atualizar-lideranca?municipio=cairu&entry=change-trend`,
|
|
})
|
|
})
|
|
})
|