File size: 1,245 Bytes
3e05655
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import { expect, test } from "bun:test"
import { summarizeFirstNavigation } from "../timeline/first-navigation-metrics"

test("reports blank frames before first destination and stable paint", () => {
  expect(
    summarizeFirstNavigation([
      { observedAtMs: 16, source: true, destination: false, content: true },
      { observedAtMs: 32, source: false, destination: false, content: false },
      { observedAtMs: 48, source: false, destination: true, content: true },
      { observedAtMs: 64, source: false, destination: true, content: true },
      { observedAtMs: 80, source: false, destination: true, content: true },
    ]),
  ).toEqual({
    samples: 5,
    firstDestinationObservedMs: 48,
    stableDestinationObservedMs: 80,
    sourceSamples: 1,
    blankSamples: 1,
    unknownSamples: 0,
    destinationSamples: 3,
  })
})

test("does not report stability for interrupted destination frames", () => {
  expect(
    summarizeFirstNavigation([
      { observedAtMs: 16, source: false, destination: true, content: true },
      { observedAtMs: 32, source: false, destination: false, content: true },
      { observedAtMs: 48, source: false, destination: true, content: true },
    ]).stableDestinationObservedMs,
  ).toBeNull()
})