teqo-backup/tests/unit/campaignFooter.unit.spec.tsx
Francisco Solla 5635e6522c feat(site): vira o site público para o mandato pós-eleição (S47)
Home abre no agradecimento pelos 152.049 votos com board 1+3, trajetória, bandeiras do mandato, galeria de fotos e rodapé institucional; chrome novo (header home/interno, lockup de nome, menu mobile acessível) e /artigos//fotos com título compacto.

As superfícies de campanha saem do ar (308 de /conteudos, /jingles e /cards), junto com newsletter, estúdio público de cards e UI da Central/jingles; download de foto e .ics perdem o 1313. Sem migration, sem Consent novo e sem apagar dados do CMS.
2026-10-22 02:16:08 -03:00

48 lines
2 KiB
TypeScript

import { cleanup, render, screen } from '@testing-library/react'
import { afterEach, describe, expect, it, vi } from 'vitest'
import { CampaignFooter } from '@/components/CampaignFooter'
type MockImageProps = React.ImgHTMLAttributes<HTMLImageElement> & { priority?: boolean }
vi.mock('next/image', () => ({
default: ({ alt, priority: _priority, ...props }: MockImageProps) => (
// eslint-disable-next-line @next/next/no-img-element
<img alt={alt} {...props} />
),
}))
afterEach(cleanup)
describe('CampaignFooter', () => {
it('é institucional: navegação, redes e assinatura, sem bloco eleitoral', () => {
const { container } = render(<CampaignFooter current="artigos" />)
expect(screen.getByRole('link', { name: 'Artigos' }).getAttribute('aria-current')).toBe('page')
expect(screen.getByRole('link', { name: 'Fotos' }).getAttribute('href')).toBe('/fotos')
expect(screen.getByRole('link', { name: 'Privacidade' }).getAttribute('href')).toBe(
'/privacidade',
)
expect(screen.getByRole('link', { name: 'Instagram' }).getAttribute('href')).toBe(
'https://instagram.com/depjorgesolla',
)
expect(screen.getByRole('link', { name: 'YouTube' }).getAttribute('href')).toBe(
'https://youtube.com/@JorgeSollaDep',
)
expect(screen.getByRole('link', { name: 'Facebook' }).getAttribute('href')).toBe(
'https://facebook.com/depjorgesolla',
)
expect(screen.getByText(/Deputado Federal · PT · Bahia/)).toBeTruthy()
expect(screen.getByText('Mais Saúde, Mais Futuro.')).toBeTruthy()
expect(container.textContent).not.toContain('1313')
expect(container.textContent).not.toMatch(/CNPJ|1º turno|Quero apoiar|propaganda eleitoral/i)
})
it('marca Fotos como seção atual quando pedido', () => {
render(<CampaignFooter current="fotos" />)
expect(screen.getByRole('link', { name: 'Fotos' }).getAttribute('aria-current')).toBe('page')
expect(screen.getByRole('link', { name: 'Artigos' }).getAttribute('aria-current')).toBeNull()
})
})