@@ -5,45 +5,43 @@ import { expectNoHorizontalOverflow } from '../helpers/assertions';
55const LANDING_URL = 'http://localhost:3002' ;
66
77test . describe ( 'Landing Page' , ( ) => {
8- test ( 'loads with hero section containing approval/accountability/ agentic' , async ( { page } ) => {
8+ test ( 'loads with V2 hero: "the missing control plane for agentic AI" ' , async ( { page } ) => {
99 await page . goto ( LANDING_URL ) ;
1010
1111 const h1 = page . locator ( 'h1' ) ;
1212 await expect ( h1 ) . toBeVisible ( ) ;
1313
1414 const text = await h1 . textContent ( ) ;
15- expect ( text ?. toLowerCase ( ) ) . toContain ( 'approval' ) ;
16- expect ( text ?. toLowerCase ( ) ) . toContain ( 'accountability' ) ;
15+ expect ( text ?. toLowerCase ( ) ) . toContain ( 'control plane' ) ;
1716 expect ( text ?. toLowerCase ( ) ) . toContain ( 'agentic' ) ;
1817 } ) ;
1918
20- test ( '"Get Started Free" button links to signup' , async ( { page } ) => {
19+ test ( '"Start Free" CTA links to signup' , async ( { page } ) => {
2120 await page . goto ( LANDING_URL ) ;
2221
23- const cta = page . locator ( 'a' , { hasText : 'Get Started Free' } ) ;
22+ const cta = page . locator ( 'a' , { hasText : 'Start Free' } ) . first ( ) ;
2423 await expect ( cta ) . toBeVisible ( ) ;
2524
2625 const href = await cta . getAttribute ( 'href' ) ;
2726 expect ( href ) . toContain ( 'signup' ) ;
2827 } ) ;
2928
30- test ( '"View on GitHub" links to github.com/sidclawhq' , async ( { page } ) => {
29+ test ( 'links to github.com/sidclawhq' , async ( { page } ) => {
3130 await page . goto ( LANDING_URL ) ;
3231
33- const ghLink = page . locator ( 'a' , { hasText : 'View on GitHub' } ) ;
32+ // Multiple GitHub links exist (nav, developer section, footer) — assert
33+ // at least one resolves to the org.
34+ const ghLink = page . locator ( 'a[href*="github.com/sidclawhq"]' ) . first ( ) ;
3435 await expect ( ghLink ) . toBeVisible ( ) ;
35-
36- const href = await ghLink . getAttribute ( 'href' ) ;
37- expect ( href ) . toContain ( 'github.com/sidclawhq' ) ;
3836 } ) ;
3937
40- test ( 'pricing section shows "5 agents" text' , async ( { page } ) => {
38+ test ( 'compliance bar names FINRA and the EU AI Act' , async ( { page } ) => {
39+ // The V2 page has no pricing section; the compliance trust bar is its
40+ // regulated-market signal.
4141 await page . goto ( LANDING_URL ) ;
4242
43- const pricing = page . locator ( '#pricing' ) ;
44- await expect ( pricing ) . toBeVisible ( ) ;
45-
46- await expect ( pricing . locator ( 'text=5 agents' ) ) . toBeVisible ( ) ;
43+ await expect ( page . locator ( 'text=FINRA' ) . first ( ) ) . toBeVisible ( ) ;
44+ await expect ( page . locator ( 'text=EU AI Act' ) . first ( ) ) . toBeVisible ( ) ;
4745 } ) ;
4846
4947 test ( 'has dark theme (#0A0A0B background)' , async ( { page } ) => {
@@ -67,10 +65,12 @@ test.describe('Landing Page', () => {
6765 await expectNoHorizontalOverflow ( page ) ;
6866 } ) ;
6967
70- test ( 'stats cite NeuralTrust source' , async ( { page } ) => {
68+ test ( 'hero pitches identity, policy, approval, and audit' , async ( { page } ) => {
69+ // The V2 page dropped the NeuralTrust stat; the four-primitives pitch is
70+ // the stable content anchor.
7171 await page . goto ( LANDING_URL ) ;
7272
73- const citation = page . locator ( 'text=NeuralTrust' ) ;
74- await expect ( citation ) . toBeVisible ( ) ;
73+ const heroCopy = page . locator ( 'text=tamper-evident audit' ) . first ( ) ;
74+ await expect ( heroCopy ) . toBeVisible ( ) ;
7575 } ) ;
7676} ) ;
0 commit comments