mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-14 08:53:11 +00:00
- Popover + NativeSelect sempre montado na coluna Status de /campanha/liderancas, sem toggle de modo de edição - Auto-save (~150ms) via POST /campanha/liderancas/support-status, reusando isSameOriginRequest/campaignJsonMutationRoute (B24/B27), sem revalidatePath - Extrai leadershipStaffEditSafeMessages (adotado também em liderancas/formActions.ts e nova/formActions.ts) e utilities/leadershipLabels.ts (3º call site de supportStatusLabels, agora fonte única também para SupportStatusBadge) - Novo e2e tests/e2e/campaignLeaderships.e2e.spec.ts; setup.e2e.spec.ts prewarma as rotas novas - Fecha o Adiado com gatilho do B29; docs/plans, notebook e roadmap atualizados Gate: tsc/lint/format/knip(P3 pré-existente)/check:cycles/unit+int/e2e verdes; two /simplify passes (labels/estado duplicado/isSupportStatus; flush-on-close ao fechar o popover, comentário órfão de summary/ campos summary mortos removidos de SupportStatusBadge).
36 lines
1.3 KiB
TypeScript
36 lines
1.3 KiB
TypeScript
import { expect, test } from '@playwright/test'
|
|
|
|
const baseURL = process.env.PLAYWRIGHT_BASE_URL ?? 'http://localhost:3000'
|
|
|
|
test('prewarms shared Next route bundles sequentially', async ({ request }) => {
|
|
test.slow()
|
|
for (const path of [
|
|
'/campanha/login',
|
|
'/campanha',
|
|
'/campanha/municipios',
|
|
'/campanha/territorios',
|
|
'/campanha/municipios/e2e-prewarm',
|
|
'/campanha/demandas',
|
|
'/campanha/liderancas',
|
|
'/campanha/conceitos',
|
|
'/campanha/convite/e2e-prewarm',
|
|
'/',
|
|
]) {
|
|
const response = await request.get(`${baseURL}${path}`)
|
|
expect(response.ok(), `Failed to prewarm ${path}`).toBe(true)
|
|
}
|
|
|
|
// POST-only API route handlers (auto-save popovers): Next dev compiles a
|
|
// route on its first hit, and that compile can trigger a full-page reload
|
|
// for any client currently connected — which aborts an in-flight fetch mid
|
|
// test. An unauthenticated POST never succeeds, but it still forces the
|
|
// compile before any spec's client makes the real request.
|
|
for (const path of [
|
|
'/campanha/municipios/advisors',
|
|
'/campanha/municipios/expected-votes',
|
|
'/campanha/municipios/political-trend',
|
|
'/campanha/liderancas/support-status',
|
|
]) {
|
|
await request.post(`${baseURL}${path}`, { data: {} }).catch(() => undefined)
|
|
}
|
|
})
|