teqo-backup/tests/int
Francisco Ignácio Fontoura Solla da4ca2c713 Deliver B37: editable município chips on the dobradinhas list.
The "Municípios" column of /campanha/dobradinhas reuses
MunicipalityPortfolioCell unchanged, writing the inverted side of the
relation (municipality.stateDeputies) through a single transactional
batch action (setStateDeputyMunicipalitiesBatch): per-município advisory
lock, all-or-nothing on a partial-scope batch instead of a silent partial
apply, no floor (a dobradinha can hold zero municípios). stateDeputiesArraySchema's
cap moved 20 → 435 to fit a whole território batch from the município side.

The post-implementation critique found two P1s, and both were fixed instead
of deferred. First: MunicipalityPortfolioCell and LeadershipStateDeputyRelationCell
had grown the same chip-editing machine twice — optimistic delta, undo, ARIA
1.2 combobox, floor/ceiling, pointer-fine/coarse split — with incompatible
contracts. This was the 3rd call site B34+ was waiting for, so RelationChipCell
is now the single engine and both cells shrank to thin domain wrappers (chip/
search building, FormData, copy — nothing interaction-specific left in either).
LeadershipStateDeputyRelationCell also gained an ownerName prop and its first
dedicated test suite, which it shipped without before this.

Second: an advisor could see, and attempt to remove, a município chip outside
the portfolio they administer, failing silently at the document level.
MunicipalityPortfolioCell now filters the visible chips by addableIds instead
of only gating what can be added, so an advisor sees and can only touch
municípios they administer.

No migration, collection, or Consent. Docs updated: plan as-built, roadmap,
AGENTS.md, project notebook.
2026-07-28 09:34:39 -03:00
..
api.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
assertTestDatabase.int.spec.ts Ship /campanha nuclei MVP with RBAC, invites, and vote estimates. 2026-07-18 15:01:56 -03:00
bahiaGeometries.int.spec.ts B8+: escala das malhas em unidades reais, contrato do map key e degradacao 2026-07-27 01:59:36 -03:00
bahiaMunicipalityCodes.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
bahiaMunicipalityDemographics.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
bahiaTerritories.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
bahiaTseCityCodes.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
bahiaTseZones.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
campaignActivity.int.spec.ts E13: visit eligibility checklist and the tour composer. 2026-07-27 21:04:04 -03:00
campaignAdvisorManagement.int.spec.ts B34: editable município chips on the leaderships list. 2026-07-27 22:35:19 -03:00
campaignAllocationDecision.int.spec.ts Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
campaignAuth.int.spec.ts Add remembered campaign sessions 2026-07-27 08:57:26 -03:00
campaignDemandWorkflow.int.spec.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
campaignEntityListData.int.spec.ts Deliver B37: editable município chips on the dobradinhas list. 2026-07-28 09:34:39 -03:00
campaignFixtures.int.spec.ts Add users.roles so Payload /admin can separate editors from admins. 2026-07-27 01:54:29 -03:00
campaignFixturesRowCounts.int.spec.ts Add the tooling gate: knip, CI, zero-warning lint, as-never ban 2026-07-23 23:06:12 -03:00
campaignGoalsAccess.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
campaignInvite.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
campaignInviteUi.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
campaignLeadership.int.spec.ts C13: renomeia "Plano de Acao" para "Atividade" em toda a vertical /campanha 2026-07-25 20:50:38 -03:00
campaignLeadershipActions.int.spec.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
campaignLeadershipMunicipalityMembership.int.spec.ts B34: editable município chips on the leaderships list. 2026-07-27 22:35:19 -03:00
campaignLeadershipStateDeputyMembership.int.spec.ts B31: coluna de dobradinhas na lista de lideranças 2026-07-26 19:50:15 -03:00
campaignMigrationReconciliation.int.spec.ts C13 pos-simplify: fecha os residuos da varredura e estreita os guards 2026-07-25 21:29:32 -03:00
campaignMunicipalityAccess.int.spec.ts B19: Gerenciar assessores (/campanha/assessores) 2026-07-25 02:40:47 -03:00
campaignMunicipalityAdvisorMembership.int.spec.ts B27: combobox + chips + auto-save no popover de Assessores da lista de municípios 2026-07-26 03:31:51 -03:00
campaignMunicipalityEngagementLevel.int.spec.ts E14: engagement levels N0-N4 and the first allocationDecision writer. 2026-07-27 21:19:33 -03:00
campaignMunicipalityScope.int.spec.ts perf(campanha): roda as funções em gru1 e encurta o waterfall de queries 2026-07-26 21:00:06 -03:00
campaignMunicipalityUpdate.int.spec.ts C13: renomeia "Plano de Acao" para "Atividade" em toda a vertical /campanha 2026-07-25 20:50:38 -03:00
campaignMunicipalityUpdatePageData.int.spec.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
campaignPasswordReset.int.spec.ts Remodel /campanha around predefined Praças replacing electoral nuclei. 2026-07-21 02:28:00 -03:00
campaignStateDeputyMunicipalityMembership.int.spec.ts Deliver B37: editable município chips on the dobradinhas list. 2026-07-28 09:34:39 -03:00
campaignSupporter.int.spec.ts Lock down CMS/PII collection access and leader routes 2026-07-23 22:25:18 -03:00
campaignUserPhone.int.spec.ts Pass 2 W4e: tipos de fonte unica 2026-07-25 15:05:03 -03:00
campaignVotePledge.int.spec.ts Implement C12 campaign foundation records 2026-07-24 19:27:15 -03:00
collectionAccessLockdown.int.spec.ts Add users.roles so Payload /admin can separate editors from admins. 2026-07-27 01:54:29 -03:00
contactPhoneNormalization.int.spec.ts Pass 2 W2: correcoes de fronteira lib/utilities e client boundary 2026-07-25 14:38:41 -03:00
electionResultsImport.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
eslintConventions.int.spec.ts C13 pos-simplify: fecha os residuos da varredura e estreita os guards 2026-07-25 21:29:32 -03:00
formData.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
municipalityCatalog.int.spec.ts Remodel the campaign vertical from Praça to Município 2026-07-23 21:36:20 -03:00
municipalityDossierData.int.spec.ts C13: renomeia "Plano de Acao" para "Atividade" em toda a vertical /campanha 2026-07-25 20:50:38 -03:00
municipalityMapData.int.spec.ts B8+: escala das malhas em unidades reais, contrato do map key e degradacao 2026-07-27 01:59:36 -03:00
municipalityPageData.int.spec.ts E14: engagement levels N0-N4 and the first allocationDecision writer. 2026-07-27 21:19:33 -03:00
municipalityZoneNeighborhoods.int.spec.ts Document B8 F2 and apply the simplify pass findings. 2026-07-26 23:25:42 -03:00
onda0Provision.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
payloadTransaction.int.spec.ts Add the tooling gate: knip, CI, zero-warning lint, as-never ban 2026-07-23 23:06:12 -03:00
petition-page-layout.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
postgresTransactionLocks.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
relationship.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
schemaPrimitives.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
siteMetadataFallback.int.spec.ts Make public SEO resilient when the metadata global is empty. 2026-07-27 08:20:33 -03:00
submitWhatsapp.int.spec.ts Guardas programaticas: fronteira lib/ (no-restricted-imports), ban de consent id hardcoded, codebaseConventions.unit.spec (server-only, copy Praca/Nucleo, listas legadas do eslint, wrappers de formActions), ciclo do payload.config quebrado (documents/globals divididos em tags+reads), timeout global do int suite, personName schema-valido, consent drafts Onda 0 p/ Municipio 2026-07-25 18:02:02 -03:00
supporterListFilters.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
testDatabaseLease.int.spec.ts Tooling: prettier como autoridade de formatacao (organize-imports deterministico, scripts format/format:check, normalizacao mecanica de 312 arquivos; artefatos gerados e migrations excluidos via .prettierignore) 2026-07-25 17:22:20 -03:00
visitPlannerData.int.spec.ts E13: visit eligibility checklist and the tour composer. 2026-07-27 21:04:04 -03:00