25 lines
963 B
TypeScript
25 lines
963 B
TypeScript
import { expect, test } from '@playwright/test'
|
|||
|
|
|
||
|
|
test('article detail renders body, breadcrumb and structured data', async ({ page }) => {
|
||
|
|
await page.goto('/blog/articolo-pubblicato')
|
||
|
|
|
||
|
|
await expect(page.getByRole('heading', { level: 1, name: 'Articolo pubblicato' })).toBeVisible()
|
||
|
|
await expect(page.getByRole('link', { name: 'Economia' })).toHaveAttribute(
|
||
|
|
'href',
|
||
|
|
'/category/economia'
|
||
|
|
)
|
||
|
|
await expect(page.locator('.prose strong')).toHaveText('markdown')
|
||
|
|
|
||
|
|
const jsonLd = await page.locator('script[type="application/ld+json"]').textContent()
|
||
|
|
const data = JSON.parse(jsonLd ?? '{}')
|
||
|
|
expect(data['@type']).toBe('BlogPosting')
|
||
|
|
expect(data.headline).toBe('Articolo pubblicato')
|
||
|
|
})
|
||
|
|
|
||
|
|
test('unknown article slug renders the 404 page', async ({ page }) => {
|
||
|
|
const response = await page.goto('/blog/non-esiste')
|
||
|
|
|
||
|
|
expect(response?.status()).toBe(404)
|
||
|
|
await expect(page.getByRole('heading', { name: 'Pagina non trovata' })).toBeVisible()
|
||
|
|
})
|