Download packages/app/e2e/performance/unit/session-tab-switch-metrics.test.ts from SaylorTwift/opencode: direct link, hf CLI and curl.
- Browser
- Download file 2.95 kB
-
https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/app/e2e/performance/unit/session-tab-switch-metrics.test.ts
- Command line
-
hf download hf://SaylorTwift/opencode/packages/app/e2e/performance/unit/session-tab-switch-metrics.test.ts
-
curl -L -o session-tab-switch-metrics.test.ts https://huggingface.co/SaylorTwift/opencode/resolve/main/packages/app/e2e/performance/unit/session-tab-switch-metrics.test.ts
2.95 kB
| import { expect, test } from "bun:test" | |
| import { classifySessionSwitch } from "../timeline/session-tab-switch-metrics" | |
| test("counts source and blank samples before the destination is observed", () => { | |
| const result = classifySessionSwitch([ | |
| { observedAtMs: 16, destination: [], source: ["source"], hasVisibleRows: true, last: false }, | |
| { observedAtMs: 32, destination: [], source: [], hasVisibleRows: false, last: false }, | |
| { observedAtMs: 48, destination: ["destination"], source: [], hasVisibleRows: true, last: true, bottomErrorPx: 0 }, | |
| { observedAtMs: 64, destination: ["destination"], source: [], hasVisibleRows: true, last: true, bottomErrorPx: 0 }, | |
| { observedAtMs: 80, destination: ["destination"], source: [], hasVisibleRows: true, last: true, bottomErrorPx: 0 }, | |
| ]) | |
| expect(result.blankSamples).toBe(1) | |
| expect(result.sourceSamples).toBe(1) | |
| expect(result.unknownSamples).toBe(0) | |
| expect(result.firstDestinationObservedMs).toBe(48) | |
| expect(result.stableObservedMs).toBe(80) | |
| }) | |
| test("does not classify mixed source and destination content as correct", () => { | |
| const result = classifySessionSwitch([ | |
| { | |
| observedAtMs: 16, | |
| destination: ["destination"], | |
| source: ["source"], | |
| hasVisibleRows: true, | |
| last: true, | |
| bottomErrorPx: 0, | |
| }, | |
| { observedAtMs: 32, destination: ["destination"], source: [], hasVisibleRows: true, last: true, bottomErrorPx: 0 }, | |
| { observedAtMs: 48, destination: ["destination"], source: [], hasVisibleRows: true, last: true, bottomErrorPx: 0 }, | |
| { observedAtMs: 64, destination: ["destination"], source: [], hasVisibleRows: true, last: true, bottomErrorPx: 0 }, | |
| ]) | |
| expect(result.firstCorrectObservedMs).toBe(32) | |
| expect(result.stableObservedMs).toBe(64) | |
| }) | |
| test("reports missing correctness without throwing", () => { | |
| const result = classifySessionSwitch([ | |
| { | |
| observedAtMs: 16, | |
| destination: ["destination"], | |
| source: ["source"], | |
| hasVisibleRows: true, | |
| last: true, | |
| bottomErrorPx: 0, | |
| }, | |
| ]) | |
| expect(result.firstDestinationObservedMs).toBe(16) | |
| expect(result.firstCorrectObservedMs).toBeNull() | |
| expect(result.stableObservedMs).toBeNull() | |
| }) | |
| test("requires an explicitly tracked part to be visible", () => { | |
| const result = classifySessionSwitch([ | |
| { | |
| observedAtMs: 16, | |
| destination: ["destination"], | |
| source: [], | |
| hasVisibleRows: true, | |
| last: true, | |
| requiredPartVisible: false, | |
| bottomErrorPx: 0, | |
| }, | |
| ]) | |
| expect(result.firstCorrectObservedMs).toBeNull() | |
| }) | |
| test("can measure content correctness without requiring a bottom anchor", () => { | |
| const result = classifySessionSwitch([ | |
| { | |
| observedAtMs: 16, | |
| destination: ["destination"], | |
| source: [], | |
| hasVisibleRows: true, | |
| last: true, | |
| requiredPartVisible: true, | |
| bottomAnchorRequired: false, | |
| }, | |
| ]) | |
| expect(result.firstCorrectObservedMs).toBe(16) | |
| }) | |