import { expect, test } from '@playwright/test';

import {
    expectCtaHierarchy,
    expectNavigationVsCtaDifferentiation,
    expectPageFamily,
    expectPrimaryNavigation,
    expectShell,
    visitPage,
} from './smoke-helpers';

test('representative pages route CTA, badge, surface, and input semantics through shared primitives', async ({
    page,
}) => {
    await visitPage(page, '/');
    await expectShell(page, /control surface/i);
    await expectPageFamily(page, 'landing');
    await expectPrimaryNavigation(page);
    await expectNavigationVsCtaDifferentiation(page);
    await expectCtaHierarchy(page, 'Request a working session', /product model/i);
    await expect(page.locator('[data-interaction="button"]').filter({ hasText: 'Request a working session' }).first()).toBeVisible();
    await expect(page.locator('[data-badge-tone]').first()).toBeVisible();

    await visitPage(page, '/trust');
    await expectShell(page, /trust posture|trust/i);
    await expect(page.locator('[data-surface="accent"]').first()).toBeVisible();
    await expect(page.locator('[data-badge-tone]').first()).toBeVisible();

    await visitPage(page, '/contact');
    await expectShell(page, /contact path|working session|qualified/i);
    await expect(page.locator('[data-interaction="input"]').first()).toBeVisible();
    await expect(page.locator('[data-interaction="textarea"]').first()).toBeVisible();
    await expect(
        page.locator('[data-button-variant="secondary"]').filter({ hasText: 'Privacy' }).first(),
    ).toBeVisible();
});
