mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-15 18:53:06 +00:00
- knip (files/deps at error level; unused exports ledgered as warn) with config for Payload/Next entries; deleted the dead modules it confirmed: RecentlyVisited + UpcomingActionPlansCard + actionPlanUpcomingPreview, lazy-dialog helpers, tseZone, federalCandidateTotalsAggregate (test-only), unused ui kit files, one-shot rename script; pruned unused radix deps and typescript-eslint; added pg/@types/pg (pinned to drizzle's 8.10.2) - GitHub Actions CI on the mirror: lint, typecheck, knip, unit, migrate, int against a Postgres 17 service - eslint: unused-vars with ^_ ignore patterns (migrations args exempt), repo-wide ban on `as never` (no-restricted-syntax), lint gate at --max-warnings=0; fixed all 54 pre-existing warnings (dead imports, hooks deps, tracking-pixel img disable with impeccable config exception) - tsconfig: include consolidated from 219 lines to 5 (wildcard covers all .next dist variants), noUnusedLocals on - typed replacements for every as-never: hookFilledCreateData (actions create data completed by collection hooks), drizzle scopeColumn narrowing, tests' stub<T> helper (property-level checking kept, completeness waived) - test infra: leased-consent generalization used by onda0 spec (shared leases over the stable consent keys; window race ledgered), purge fix - docs: IMPROVE-CODE-QUALITY-PLAN.md tracker, TECH-DEBT.md ledger, TESTING.md safety-net map (package.json also gains the Phase 2 build:election-aggregates script entry; the script lands next commit)
28 lines
1 KiB
TypeScript
28 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 }, staleActor, req)).resolves.toBe(currentActor)
|
|
expect(findByID).toHaveBeenCalledWith({
|
|
collection: 'campaignUser',
|
|
id: staleActor.id,
|
|
depth: 0,
|
|
overrideAccess: true,
|
|
req,
|
|
})
|
|
})
|
|
})
|