fix(int): batch B19 usa municípios alocados — remove raça com cap de assessores
O teste 'assigns and removes multiple municipalities in one batch' escolhia o segundo município com id not_equals cru; sob ~48 workers paralelos podia cair num município que um spec paralelo (cap 10 do B27/B154) acabara de encher, fazendo o batch estourar o teto. getMunicipality() aloca município globalmente único e purga resíduo.
This commit is contained in:
parent
26b2205c3a
commit
5a52bb0efa
2 changed files with 11 additions and 10 deletions
|
|
@ -140,3 +140,8 @@ Três revisores paralelos (qualidade, reuso/DRY, comportamento) no diff do B154;
|
|||
- Reconcile assume commit na ordem de envio (machinery-wide do B27, toggle compartilha): um interleave raro pode dropar o chip do create até a próxima navegação. **Gatilho:** chip sumindo observado em produção.
|
||||
|
||||
**Descartado:** renomear `isPlanilhaPlaceholderEmail` (drive-by de 4 call sites pré-existentes); alias table do E4R no stub (TLDs distintos, sem colisão); `payload-types.ts` com drift do B134 (regenerado por cada run e2e — pertence à entrega do B134).
|
||||
|
||||
**Pré-existente documentado (não é débito do B154):**
|
||||
|
||||
- **Raça do batch B19** (`campaignAdvisorManagement.int.spec.ts`): o teste escolhia o 2º município com `id not_equals` cru — podia cair num município que um spec paralelo acabara de encher até o cap 10. Os testes de cap do B154 agravaram a probabilidade. **Fixado neste PR**: `getMunicipality()` nos dois municípios (alocação globalmente única + purga de resíduo).
|
||||
- **Flake pré-existente `testDatabaseLease` × `onda0Provision`** (`~1 em 4–5 runs`, ~48 workers paralelos): `onda0Provision.int.spec.ts` grava os textos Onda 0 (banner "Texto provisório…") na mesma row `lideranca-autopreenchimento` que `withMutableConsentFixture` muta/restaura — os dois specs de infra disputam a row sem coordenação. Reproduz em main limpo; nenhuma relação com B154 (nenhum arquivo deste PR toca consent/lease). Fix exige coordenação entre os dois specs de infra (ex.: onda0Provision respeitar o lease) — fora do escopo desta entrega, registrado aqui para não se perder.
|
||||
|
|
|
|||
|
|
@ -199,17 +199,13 @@ describe('campaign advisor management (B19)', () => {
|
|||
const fixtures = campaignFixtures()
|
||||
const coordinator = await fixtures.createCampaignUser('coordinator')
|
||||
const advisor = await fixtures.createCampaignUser('advisor')
|
||||
// Both municipios go through the allocation mechanism: globally unique
|
||||
// across parallel spec files AND purged of residue on claim. The old
|
||||
// arbitrary `id not_equals` pick could land on a municipio a parallel test
|
||||
// had just filled to the 10-advisor cap, making the batch throw.
|
||||
const first = await fixtures.getMunicipality()
|
||||
const second = (
|
||||
await payload.find({
|
||||
collection: 'municipality',
|
||||
where: { id: { not_equals: first.id } },
|
||||
limit: 1,
|
||||
depth: 0,
|
||||
overrideAccess: true,
|
||||
})
|
||||
).docs[0]
|
||||
expect(second).toBeTruthy()
|
||||
const second = await fixtures.getMunicipality()
|
||||
expect(second.id).not.toBe(first.id)
|
||||
|
||||
await setAdvisorMunicipalitiesBatchRecord(payload, coordinator, {
|
||||
advisorId: advisor.id,
|
||||
|
|
|
|||
Loading…
Reference in a new issue