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

Run #417 — DEMO-T13

failed
📄 Download report

queued 2026-09-25 00:22:38 · started 00:22:52 · finished 00:22:55 · duration 3s · target v2.0.0 · chromium · trigger: cli-adopted · batch: 7 tests (terminal)

What went wrong

1 of 1 test(s) failed: the public API keeps its promises -- contract: field 'eta' is missing (the response has: booked_at, customer, delivered_at, destination, estimated_delivery, events, id, origin, pieces, price, service, status, status_label, weight_kg)
Technical details (full error)
1 of 1 test(s) failed: the public API keeps its promises -- contract: field 'eta' is missing (the response has: booked_at, customer, delivered_at, destination, estimated_delivery, events, id, origin, pieces, price, service, status, status_label, weight_kg)

Step timings every page action is timed automatically

atsteptook
+0.04s ⏱ the public API keeps its promises 218 ms
+0.04s ⏱ auth: no key 22 ms
+0.04s GET freight/api/v1/shipments/AF-100001 16 ms
+0.06s ⏱ contract: a shipment 65 ms
+0.06s GET freight/api/v1/shipments/AF-100001 37 ms
+0.13s ⏱ money: SPRING10 26 ms
+0.13s POST freight/api/v1/quotes 21 ms
+0.15s ⏱ limits: six calls on the trial key 52 ms
+0.15s GET freight/api/v1/shipments/AF-100002 18 ms
+0.17s GET freight/api/v1/shipments/AF-100002 6 ms
+0.18s GET freight/api/v1/shipments/AF-100002 4 ms
+0.19s GET freight/api/v1/shipments/AF-100002 4 ms
+0.19s GET freight/api/v1/shipments/AF-100002 4 ms
+0.20s GET freight/api/v1/shipments/AF-100002 5 ms

Times are when each step began, on the replay's clock. Add your own phases with await test.step('label', async () => { … }).

Screenshots

No screenshots (use ctx.screenshot("name") in the test).

Artifacts

Run logrun.log
Playwright trace trace.zip open with: playwright show-trace trace.zip
Result JSONresult.json
Folderresults/DEMO-T13/20260925-002252-r417/

Full log

Read from the S3 bucket (the last 20 KB; the whole file is the Run log link above).

[ts-harness] @playwright/test project=chromium file=DEMO-T13__freight_api_typescript.spec.ts

Running 1 test using 1 worker

  ✘  1 [chromium] › DEMO-T13__freight_api_typescript.spec.ts:11:5 › the public API keeps its promises (218ms)


  1) [chromium] › DEMO-T13__freight_api_typescript.spec.ts:11:5 › the public API keeps its promises › contract: a shipment 

    Error: contract: field 'eta' is missing (the response has: booked_at, customer, delivered_at, destination, estimated_delivery, events, id, origin, pieces, price, service, status, status_label, weight_kg)

    expect(received).toHaveProperty(path)

    Expected path: "eta"
    Received path: []

    Received value: {"booked_at": "2026-09-22T06:00", "customer": "Lumen Optics", "delivered_at": null, "destination": "Frankfurt, Hessen, DE", "estimated_delivery": "2026-09-24", "events": [{"at": "2026-09-22T06:00", "code": "booked", "location": "Los Angeles, California, US", "text": "Booked with Acme Freight (express)"}, {"at": "2026-09-22T18:00", "code": "picked_up", "location": "Los Angeles, California, US", "text": "Picked up by courier"}, {"at": "2026-09-23T08:00", "code": "at_hub", "location": "Los Angeles, California, US", "text": "Arrived at LAX hub"}, {"at": "2026-09-23T18:00", "code": "in_transit", "location": "Los Angeles, California, US", "text": "Departed LAX for FRA"}], "id": "AF-100001", "origin": "Los Angeles, California, US", "pieces": 3, "price": {"amount": "717.54", "currency": "USD"}, "service": "express", "status": "in_transit", "status_label": "In transit", "weight_kg": 42.5}

      22 |       const has = Object.keys(body).sort().join(', ');
      23 |       for (const field of ['id', 'status', 'origin', 'destination', 'service', 'weight_kg', 'eta', 'events']) {
    > 24 |         expect.soft(body, `contract: field '${field}' is missing (the response has: ${has})`).toHaveProperty(field);
         |                                                                                               ^
      25 |       }
      26 |     }
      27 |   });
        at /opt/pw-testhub/data/tests/DEMO-T13__freight_api_typescript.spec.ts:24:95
        at /opt/pw-testhub/data/tests/DEMO-T13__freight_api_typescript.spec.ts:17:3

    attachment #1: trace (application/zip) ─────────────────────────────────────────────────────────
    ../results/DEMO-T13/20260925-002252-r417/test-results/DEMO-T13__freight_api_type-42378-blic-API-keeps-its-promises-chromium/trace.zip
    Usage:

        npx playwright show-trace ../results/DEMO-T13/20260925-002252-r417/test-results/DEMO-T13__freight_api_type-42378-blic-API-keeps-its-promises-chromium/trace.zip

    ────────────────────────────────────────────────────────────────────────────────────────────────

  1 failed
    [chromium] › DEMO-T13__freight_api_typescript.spec.ts:11:5 › the public API keeps its promises ─
[ts-harness] activity reel: 0 change-frames extracted from the trace screencast