import { test, expect } from '../../fixtures/base.fixture'; test.describe('Smoke Tests - All Major Pages', () => { test.beforeEach(async ({ page }) => { await page.goto('/'); }); test('Home page loads successfully', async ({ homePage }) => { await homePage.waitForLoadState('load'); const title = await homePage.getTitle(); expect(title).toContain('睿新致远'); }); test('About page loads successfully', async ({ aboutPage }) => { await aboutPage.navigateToAbout(); await aboutPage.waitForLoadState('load'); await expect.poll(async () => await aboutPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await aboutPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await aboutPage.verifyValuesSection(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await aboutPage.verifyMilestonesSection(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await aboutPage.verifyContactSection(), { timeout: 10000, }).toBeTruthy(); }); test('Cases page loads successfully', async ({ casesPage }) => { await casesPage.navigateToCases(); await casesPage.waitForLoadState('load'); await expect.poll(async () => await casesPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await casesPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); const caseCount = await casesPage.getCaseCount(); expect(caseCount).toBeGreaterThan(0); await expect.poll(async () => await casesPage.verifyCTASection(), { timeout: 10000, }).toBeTruthy(); }); test('Services page loads successfully', async ({ servicesPage }) => { await servicesPage.navigateToServices(); await servicesPage.waitForLoadState('load'); await expect.poll(async () => await servicesPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await servicesPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); const serviceCount = await servicesPage.getServiceCount(); expect(serviceCount).toBeGreaterThan(0); await expect.poll(async () => await servicesPage.verifyCTASection(), { timeout: 10000, }).toBeTruthy(); }); test('Products page loads successfully', async ({ productsPage }) => { await productsPage.navigateToProducts(); await productsPage.waitForLoadState('load'); await expect.poll(async () => await productsPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await productsPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); const productCount = await productsPage.getProductCount(); expect(productCount).toBeGreaterThan(0); await expect.poll(async () => await productsPage.verifyCTASection(), { timeout: 10000, }).toBeTruthy(); }); test('Solutions page loads successfully', async ({ solutionsPage }) => { await solutionsPage.navigateToSolutions(); await solutionsPage.waitForLoadState('load'); await expect.poll(async () => await solutionsPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await solutionsPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await solutionsPage.verifyAllModules(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await solutionsPage.verifyCTASection(), { timeout: 10000, }).toBeTruthy(); }); test('News page loads successfully', async ({ newsPage }) => { await newsPage.navigateToNews(); await newsPage.waitForLoadState('load'); await expect.poll(async () => await newsPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await newsPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); const newsCount = await newsPage.getNewsCount(); expect(newsCount).toBeGreaterThan(0); }); test('Contact page loads successfully', async ({ contactPage }) => { await contactPage.navigateToContact(); await contactPage.waitForLoadState('load'); await expect.poll(async () => await contactPage.verifyBreadcrumb(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await contactPage.verifyPageHeader(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await contactPage.verifyContactForm(), { timeout: 10000, }).toBeTruthy(); await expect.poll(async () => await contactPage.verifyContactInfo(), { timeout: 10000, }).toBeTruthy(); }); test('Navigation between pages works', async ({ page, aboutPage, casesPage, servicesPage }) => { await aboutPage.navigateToAbout(); await aboutPage.waitForLoadState('load'); const aboutURL = await aboutPage.getCurrentURL(); expect(aboutURL).toContain('/about'); await casesPage.navigateToCases(); await casesPage.waitForLoadState('load'); const casesURL = await casesPage.getCurrentURL(); expect(casesURL).toContain('/cases'); await servicesPage.navigateToServices(); await servicesPage.waitForLoadState('load'); const servicesURL = await servicesPage.getCurrentURL(); expect(servicesURL).toContain('/services'); }); test('Breadcrumb navigation works correctly', async ({ page, aboutPage, casesPage }) => { await aboutPage.navigateToAbout(); await aboutPage.waitForLoadState('load'); const breadcrumbLinks = page.locator('nav[aria-label="breadcrumb"] a'); const linkCount = await breadcrumbLinks.count(); expect(linkCount).toBeGreaterThan(0); await casesPage.navigateToCases(); await casesPage.waitForLoadState('load'); const breadcrumbText = await page.locator('nav[aria-label="breadcrumb"]').textContent(); expect(breadcrumbText).toContain('成功案例'); }); test('All pages have consistent navigation', async ({ page }) => { const pages = ['/about', '/cases', '/services', '/products', '/solutions', '/news', '/contact']; for (const pagePath of pages) { await page.goto(pagePath); await page.waitForLoadState('load'); const header = page.locator('header'); await expect.poll(async () => await header.isVisible(), { timeout: 10000, }).toBeTruthy(); const breadcrumb = page.locator('nav[aria-label="breadcrumb"]'); await expect.poll(async () => await breadcrumb.isVisible(), { timeout: 10000, }).toBeTruthy(); } }); });