Runs under the TS engine's @playwright/test while the Python hub provides queue, history, schedules and charts. Requires the TS engine bundle at /opt/pw-ts.
demotypescript DEMO-T10__typescript_demo.spec.ts
Runs
5
Pass rate
100%
5 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
5
passed
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 5 runs — slowest steps first, one line each
How long it takes distribution of 5 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';
// A TypeScript test running through the PYTHON hub: same demo target, same
// history/charts/schedules -- but executed by the node @playwright/test
// engine at /opt/pw-ts. baseURL is the hub's target.url, so relative
// page.goto() works here exactly like ctx.base_url does in Python tests --
// './' is the target itself. Never '/': that is the server's root, which
// for a target under a path (the built-in demo is /demo/) is somewhere else.
test('demo page loads and has its title', async ({ page }) => {
await page.goto('./');
await expect(page).toHaveTitle(/Demo/i);
// same lesson as DEMO-001: assert we are still ON the target, so an SSO
// bounce or a maintenance page cannot pass by also having a title
await expect(page).toHaveURL(/\/demo\//);
});
test('the demo form round-trips a request', async ({ page }) => {
await page.goto('./');
await test.step('fill and submit', async () => {
await page.fill('#name', 'ts through python hub');
await page.click('#submit-btn');
});
await expect(page.locator('#result')).toContainText('ts through python hub');
});
All runs
| Run | Status | Queued | Duration | Version | Trigger | Batch |
|---|---|---|---|---|---|---|
| #428 | passed | 2026-09-25 00:23:39 | 4s | 3.0.0 | cli-adopted | 7 tests (terminal) |
| #421 | passed | 2026-09-25 00:23:08 | 4s | 2.1.0 | cli-adopted | 7 tests (terminal) |
| #414 | passed | 2026-09-25 00:22:38 | 4s | 2.0.0 | cli-adopted | 7 tests (terminal) |
| #407 | passed | 2026-09-25 00:22:11 | 4s | 1.1.0 | cli-adopted | 7 tests (terminal) |
| #400 | passed | 2026-09-25 00:21:43 | 4s | 1.0.0 | cli-adopted | 7 tests (terminal) |