import { expect, test } from '@playwright/test'; import { expectDisclosureLayer, expectFooterLinks, expectNavigationVsCtaDifferentiation, expectPageFamily, expectPrimaryNavigation, expectShell, visitPage, } from './smoke-helpers'; test('changelog publishes dated progress without displacing the contact path', async ({ page }) => { await visitPage(page, '/changelog'); await expectShell(page, /changelog|product progress|visible progress/i); await expectPageFamily(page, 'content'); await expectDisclosureLayer(page, '1'); await expectDisclosureLayer(page, '2'); await expectPrimaryNavigation(page); await expectNavigationVsCtaDifferentiation(page); await expectFooterLinks(page); await expect(page.getByText('Initial core pages and IA realignment')).toBeVisible(); await expect(page.getByRole('main').getByRole('link', { name: 'Start the working session' }).first()).toBeVisible(); }); test('core IA keeps optional and deferred surfaces out of the published navigation contract', async ({ page }) => { await visitPage(page, '/'); const header = page.getByRole('banner'); const footer = page.getByRole('contentinfo'); await expect(header.getByRole('link', { name: 'Resources' })).toHaveCount(0); await expect(header.getByRole('link', { name: 'Solutions' })).toHaveCount(0); await expect(header.getByRole('link', { name: 'Integrations' })).toHaveCount(0); await expect(header.getByRole('link', { name: 'Security & Trust' })).toHaveCount(0); await expect(footer.getByRole('link', { name: 'Resources' })).toHaveCount(0); await expect(footer.getByRole('link', { name: 'Articles' })).toHaveCount(0); await expect(footer.getByRole('link', { name: 'Security & Trust' })).toHaveCount(0); });