import { test, expect } from '../../fixtures'; test.describe('سناریوی پیگیری سفارشات (Order Tracking Flow & Edge Cases)', () => { test('ورود به صفحه پیگیری -> استعلام کد نامعتبر (Edge Case) -> استعلام سفارش معتبر', async ({ page }) => { // 1. ورود به صفحه /track await page.goto('/track', { waitUntil: 'domcontentloaded' }); await expect(page).toHaveURL(/\/track/); // 2. بررسی وجود المان‌های پیگیری و فیلد ورودی const trackingInput = page.locator('input[placeholder*="شماره سفارش"], input[placeholder*="کد رهگیری"]').first(); await expect(trackingInput).toBeVisible({ timeout: 15000 }); const trackBtn = page.getByRole('button', { name: /رهگیری|پیگیری|استعلام/i }).or( page.locator('button').filter({ hasText: /رهگیری|پیگیری/i }) ).first(); await expect(trackBtn).toBeVisible(); // 3. تست Edge Case: ورود کد پیگیری نامعتبر await trackingInput.fill('INVALID-TRACK-99999'); await trackBtn.click(); await page.waitForTimeout(500); // 4. تست ورود کد رهگیری ساختگی یا بررسی ساختار تایم‌لاین وضعیت await trackingInput.fill('CN-10001'); await trackBtn.click(); // 5. بررسی تایم‌لاین مراحل تحویل (ثبت سفارش، آماده‌سازی، ارسال) const timelineStep = page.locator('div, h4, span').filter({ hasText: /ثبت سفارش|آماده‌سازی|تحویل|وضعیت/i }).first(); await expect(timelineStep).toBeVisible({ timeout: 10000 }); }); });