github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/web/src/analytics_test_helpers.ts (about)

     1  import fetchMock from "fetch-mock"
     2  import { Tags } from "./analytics"
     3  
     4  export function mockAnalyticsCalls() {
     5    fetchMock.mock("//localhost/api/analytics", JSON.stringify({}))
     6  }
     7  
     8  export function cleanupMockAnalyticsCalls() {
     9    fetchMock.reset()
    10  }
    11  
    12  export function expectIncrs(...incrs: { name: string; tags: Tags }[]) {
    13    const expectedRequestBodies = incrs.map((i) => [
    14      {
    15        verb: "incr",
    16        name: i.name,
    17        tags: i.tags,
    18      },
    19    ])
    20    const incrCalls = fetchMock
    21      .calls()
    22      .filter((e) => e[0]?.toString().endsWith("/api/analytics"))
    23    const actualRequestBodies = incrCalls.map((e) =>
    24      JSON.parse(e[1]?.body?.toString() ?? "")
    25    )
    26    expect(actualRequestBodies).toEqual(expectedRequestBodies)
    27  }
    28  
    29  export function nonAnalyticsCalls() {
    30    return fetchMock
    31      .calls()
    32      .filter((c) => c[0] !== "http://localhost/api/analytics")
    33  }