feat(C163): partido na lista de lideranças da cidade

This commit is contained in:
Francisco Solla 2026-09-15 09:02:43 -03:00
parent d88bc56ddb
commit 00179cfca9
5 changed files with 7 additions and 1 deletions

View file

@ -103,7 +103,7 @@ URL por item) e emendas lidas da fonte oficial **em tempo de geração**. Págin
],
"leaders": [ // últimos prefeitos/vices, vereadores mais votados
{
"name": "…", "role": "Ex-prefeito", "period": "2017–2024",
"name": "…", "role": "Ex-prefeito", "party": "PSDB", "period": "2017–2024",
"sourceUrl": "https://…", "sourceDate": "2024-08-14"
}
],

View file

@ -0,0 +1 @@
**C163 — partido na lista de lideranças da cidade (2026-09-15):** a tabela "Lideranças da cidade (pesquisa)" ganhou a coluna **Partido** (nome, papel, partido, período, fonte); o campo `party` entrou no contrato do `research.json` (`leaders`) e na skill. Os seis líderes de Itamaraju ficaram com partido da própria fonte do item (Angênica/Jorge Almeida/Rose/Galego — PSDB; Lê da LR — PL; Evalcy — Solidariedade). Unit 3117/3117, `tsc` verde; PDF regerado.

View file

@ -528,12 +528,14 @@ const buildNetworkSection = ({ snapshot, research }) => {
columns: [
{ key: 'name', label: 'Nome' },
{ key: 'role', label: 'Papel' },
{ key: 'party', label: 'Partido' },
{ key: 'period', label: 'Período' },
{ key: 'source', label: 'Fonte' },
],
rows: cityLeaders.map((leader) => ({
name: leader.name,
role: leader.role,
party: leader.party ?? '—',
period: leader.period ?? '—',
source: formatDateBr(leader.sourceDate),
})),

View file

@ -259,6 +259,7 @@ export const normalizeResearchInput = (raw, { now = new Date() } = {}) => {
leaders.push({
name,
role,
party: isNonEmptyString(entry.party) ? entry.party.trim() : null,
period: isNonEmptyString(entry.period) ? entry.period.trim() : null,
note: isNonEmptyString(entry.note) ? entry.note.trim() : null,
sourceUrl,

View file

@ -64,6 +64,7 @@ const research = normalizeResearchInput(
{
name: 'Ex-Prefeito',
role: 'Prefeito',
party: 'PSDB',
period: '2017–2024',
sourceUrl: 'https://exemplo.test/lideranca',
sourceDate: '2026-03-05',
@ -353,6 +354,7 @@ describe('buildCityReport', () => {
)!
const rows = leadersBlock.rows as unknown as TableRow[]
expect(rows[0].name).toBe('Ex-Prefeito')
expect(rows[0].party).toBe('PSDB')
expect(rows[0].period).toBe('2017–2024')
expect(leadersBlock.sources![0]).toEqual(
expect.objectContaining({ url: 'https://exemplo.test/lideranca' }),