teqo-backup/tests/unit/campaignActionContext.unit.spec.ts
Francisco Ignácio Fontoura Solla cf13c441aa Remodel /campanha around predefined Praças replacing electoral nuclei.
436 seeded Praças (municipality-based; per-TSE-zone in Salvador/Camaçari) become
the operational unit; roles renamed to coordinator/advisor/leader with advisors
scoped to administered Praças. Leadership is one record per person across many
Praças/organizations; vote pledges split leader-declared vs staff-estimated
(estimates never serialized to leaders). Adds organizations, demand workflow
with staff-only cost/receipts, action-plan results with deputy presence, manual
political trend, multi-candidate comparison and the diverging red/white/blue
map mode. Migration 20260721_020109_remodel_plazas deliberately resets the
campaign vertical in production (public site untouched); test suite ported to
the new model (unit 187 / int 306 / e2e 9 green).
2026-07-21 02:28:00 -03:00

30 lines
1 KiB
TypeScript

// @vitest-environment node
import { describe, expect, it, vi } from 'vitest'
import type { CampaignUser } from '@/payload-types'
import { reloadCampaignActor, requireCampaignUser } from '@/utilities/campaignActionContext'
describe('campaign action context', () => {
it('preserves the generic authentication error', async () => {
await expect(requireCampaignUser(async () => null)).rejects.toThrow('Autenticação necessária.')
})
it('reloads the actor role with the transaction req', async () => {
const staleActor = { id: 9, role: 'coordinator' } as CampaignUser
const currentActor = { ...staleActor, role: 'leader' } as CampaignUser
const findByID = vi.fn().mockResolvedValue(currentActor)
const req = { transactionID: 21 }
await expect(reloadCampaignActor({ findByID } as never, staleActor, req)).resolves.toBe(
currentActor,
)
expect(findByID).toHaveBeenCalledWith({
collection: 'campaignUser',
id: staleActor.id,
depth: 0,
overrideAccess: true,
req,
})
})
})