🧪 Test Hub
testing: Demo target v3.0.0 · built-in demo site

DEMO-T12 TS Freight: tracking in TypeScript

Edit Load test Duplicate

DEMO-010's checks in TypeScript: really on the demo site, a shipment in transit with its scan history, and an unknown number that says so -- web-first assertions that retry until the page agrees.

demofreighttypescript DEMO-T12__freight_tracking_typescript.spec.ts group: Freight in TypeScriptgroup: Python and TypeScript, side by side

Runs
7
Pass rate
100%
7 passed / 0 failed
Avg duration
4s
p95 4s
Estimate
4s
avg of last 10 judged runs
Flakiness
0.00
0 stable · 1 alternates
Current streak
7
passed

Last 7 results newest on the right — click a square to open that run

Duration per run point color = outcome; dashed = 7-run average; click a point to open the run

Step timing trends the same step compared across the last 7 runs — slowest steps first, one line each

How long it takes distribution of 7 runs — two humps mean two different behaviours hiding behind one average

fastest 4s · slowest 4s

Why this test failed grouped by message, last 90 days

No failures recorded. 👍

Outcomes by target version

What this test does plain language, derived from the code

    No steps found.
Show the code
import { test, expect } from '@playwright/test';
import { open, track } from './_lib/freight';

// Freight tracking in TypeScript -- the same checks as DEMO-010 (Python),
// written with Playwright Test's web-first assertions: expect(locator)
// retries until the page agrees, or the timeout says it never will.
test('tracking shows a shipment in transit, and says so for an unknown number', async ({ page }) => {
  await open(page);
  await expect(page).toHaveURL(/\/demo\/freight\//);        // really on the demo site
  await expect(page.locator('#hero-title')).not.toBeEmpty();
  console.log(`Acme Freight says it is release ${await page.getAttribute('meta[name="app-version"]', 'content')}`);

  await test.step('track a shipment in transit', async () => {
    await track(page, 'AF-100001');
    await expect(page.locator('#track-status')).toHaveText('In transit');
    await expect(page.locator('#track-destination')).toContainText('Frankfurt');
    expect(await page.locator('#track-events li').count(), 'a scan history').toBeGreaterThanOrEqual(3);
  });

  await test.step('track an unknown number', async () => {
    await track(page, 'AF-000000');
    await expect(page.locator('#track-not-found')).toBeVisible();
  });
});

All runs

RunStatusQueuedDuration VersionTriggerBatch
#476 passed 2026-09-25 00:30:11 4s 3.0.0 group group: Python and TypeScript,…
#464 passed 2026-09-25 00:29:44 4s 3.0.0 group group: Freight in TypeScript
#430 passed 2026-09-25 00:23:39 4s 3.0.0 cli-adopted 7 tests (terminal)
#423 passed 2026-09-25 00:23:08 4s 2.1.0 cli-adopted 7 tests (terminal)
#416 passed 2026-09-25 00:22:38 4s 2.0.0 cli-adopted 7 tests (terminal)
#409 passed 2026-09-25 00:22:11 4s 1.1.0 cli-adopted 7 tests (terminal)
#402 passed 2026-09-25 00:21:43 4s 1.0.0 cli-adopted 7 tests (terminal)