From c62fe67809255d2d52cb835d4e8bf78d86f786e3 Mon Sep 17 00:00:00 2001 From: Cursor Agent Date: Sun, 2 Aug 2026 23:26:11 +0000 Subject: [PATCH] test(e2e): assert entity identity in shell chrome (B145) --- tests/e2e/campaignActivity.e2e.spec.ts | 4 ++-- tests/e2e/campaignMunicipalities.e2e.spec.ts | 6 +++--- tests/e2e/campaignZoneMap.e2e.spec.ts | 4 ++-- tests/e2e/fixtures/campaignE2EFixtures.ts | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/tests/e2e/campaignActivity.e2e.spec.ts b/tests/e2e/campaignActivity.e2e.spec.ts index c2ef7c8d..d7cef40d 100644 --- a/tests/e2e/campaignActivity.e2e.spec.ts +++ b/tests/e2e/campaignActivity.e2e.spec.ts @@ -1,4 +1,4 @@ -import { expect, test } from './fixtures/campaignE2EFixtures.js' +import { campaignPageChrome, expect, test } from './fixtures/campaignE2EFixtures.js' test.describe('Atividades — registro-fundação', () => { test.setTimeout(90_000) @@ -34,7 +34,7 @@ test.describe('Atividades — registro-fundação', () => { await page.getByRole('button', { name: 'Criar atividade' }).click() await expect(page).toHaveURL(/\/campanha\/atividades\/[^/?]+$/) - await expect(page.getByRole('heading', { name: activityTitle })).toBeVisible({ + await expect(campaignPageChrome(page, activityTitle)).toBeVisible({ timeout: 15_000, }) await expect(page.getByText('Obrigação política', { exact: true })).toBeVisible() diff --git a/tests/e2e/campaignMunicipalities.e2e.spec.ts b/tests/e2e/campaignMunicipalities.e2e.spec.ts index f4402c0f..2614000b 100644 --- a/tests/e2e/campaignMunicipalities.e2e.spec.ts +++ b/tests/e2e/campaignMunicipalities.e2e.spec.ts @@ -52,7 +52,7 @@ test.describe('Municípios — jornadas por papel', () => { ).toBeVisible() await page.goto(`${campaign.baseURL}/campanha/municipios/${municipality.slug}`) - await expect(page.getByRole('heading', { name: municipality.name })).toBeVisible() + await expect(campaignPageChrome(page, municipality.name)).toBeVisible() await page.goto(`${campaign.baseURL}/campanha/municipios/${municipality.slug}/editar`) await page.getByLabel(`${advisor.name} `, { exact: false }).check() @@ -360,7 +360,7 @@ test.describe('Municípios — jornadas por papel', () => { await page.getByLabel('Município').selectOption({ label: municipality.name }) await page.getByLabel('Detalhe a necessidade').fill('Precisamos para a caminhada de sábado.') await page.getByRole('button', { name: 'Abrir demanda' }).click() - await expect(page.getByRole('heading', { name: demandTitle })).toBeVisible() + await expect(campaignPageChrome(page, demandTitle)).toBeVisible() await expect(page.getByRole('button', { name: 'Aprovar' })).toBeVisible() await page.goto(`${campaign.baseURL}/campanha/demandas`) @@ -422,7 +422,7 @@ test.describe('Municípios — cards no celular (B42)', () => { // overlay receives it (as a user's finger would), and the card navigates. await card.getByText('Tendência', { exact: true }).click({ force: true }) await expect(page).toHaveURL(`${campaign.baseURL}/campanha/municipios/${municipality.slug}`) - await expect(page.getByRole('heading', { name: municipality.name })).toBeVisible() + await expect(campaignPageChrome(page, municipality.name)).toBeVisible() }) }) diff --git a/tests/e2e/campaignZoneMap.e2e.spec.ts b/tests/e2e/campaignZoneMap.e2e.spec.ts index b0a07317..2ec97438 100644 --- a/tests/e2e/campaignZoneMap.e2e.spec.ts +++ b/tests/e2e/campaignZoneMap.e2e.spec.ts @@ -1,4 +1,4 @@ -import { expect, test } from './fixtures/campaignE2EFixtures.js' +import { campaignPageChrome, expect, test } from './fixtures/campaignE2EFixtures.js' /** * B8 F2 — Salvador used to be one polygon carrying the whole city's votes, so @@ -51,5 +51,5 @@ test('the dashboard map paints Salvador zone by zone and opens one', async ({ ca await readout.getByRole('link', { name: 'Abrir município' }).click() // B145: entity identity lives in the shell header, not a body h1. await expect(page).toHaveURL(/\/campanha\/municipios\/salvador-ze-\d+$/) - await expect(page.locator('[data-slot="campaign-page-chrome-title"]')).toBeVisible() + await expect(campaignPageChrome(page, /Salvador — ZE \d+/)).toBeVisible() }) diff --git a/tests/e2e/fixtures/campaignE2EFixtures.ts b/tests/e2e/fixtures/campaignE2EFixtures.ts index 8d5b145e..5ca937a3 100644 --- a/tests/e2e/fixtures/campaignE2EFixtures.ts +++ b/tests/e2e/fixtures/campaignE2EFixtures.ts @@ -561,11 +561,11 @@ export const test = base.extend({ }, }) -export const campaignPageChrome = (page: Page, title: string) => +export const campaignPageChrome = (page: Page, title: string | RegExp) => page .locator('[data-slot="campaign-page-chrome"]') .filter({ visible: true }) .locator('[data-slot="campaign-page-chrome-title"]') - .getByText(title, { exact: true }) + .getByText(title, typeof title === 'string' ? { exact: true } : undefined) export { expect }