canina/tests/e2e/storefront/order-tracking.spec.ts

32 lines
1.7 KiB
TypeScript

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 });
});
});