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 }