Files
landing-builder/tests/e2e/builder-basic.e2e.ts

54 lines
2.0 KiB
TypeScript

import { test, expect } from '@playwright/test'
const builderUrl = '/en/builder'
test.describe('Builder basic flow', () => {
test('add sections, edit via inspector, preview updates', async ({ page }) => {
await page.goto(builderUrl)
await expect(page.getByTestId('builder-shell')).toBeVisible()
await page.getByTestId('card-hero').click()
await page.getByTestId('card-faq').click()
await page.getByTestId('card-features').click()
await page.getByTestId('card-testimonials').click()
await page.getByTestId('card-cta').click()
// Hero edit
await page.getByLabel('Select 0').click()
await page.getByLabel('Hero Heading').fill('Hello World')
// FAQ edit
await page.getByLabel('Select 1').click()
await page.getByRole('button', { name: 'Add FAQ Item' }).click()
await page.getByLabel('FAQ Q 0').fill('What is this?')
await page.getByLabel('FAQ A 0').fill('A builder.')
// Features edit
await page.getByLabel('Select 2').click()
await page.getByRole('button', { name: 'Add Feature Item' }).click()
await page.getByRole('textbox', { name: 'Feature 0' }).fill('Fast setup')
// Testimonials edit
await page.getByLabel('Select 3').click()
await page.getByRole('button', { name: 'Add Testimonial' }).click()
await page.getByLabel('Author 0').fill('Alice')
await page.getByLabel('Quote 0').fill('Great!')
// CTA edit
await page.getByLabel('Select 4').click()
await page.getByLabel('CTA Text').fill('Start Now')
await page.getByLabel('CTA Href').fill('/start')
// Preview assertions
await expect(page.getByText('• hero — heading: Hello World')).toBeVisible()
await expect(page.getByText('• faq — items: 1')).toBeVisible()
await expect(page.getByText(/features — items:\s*4/)).toBeVisible()
await expect(page.getByText(/testimonials — items:\s*3/)).toBeVisible()
await expect(page.getByText('• cta — Start Now → /start')).toBeVisible()
// Export should not crash
await page.getByRole('button', { name: /Export/i }).click()
})
})