MCPcopy Index your code
hub / github.com/coder/coder / mockTelemetryServer

Function mockTelemetryServer

coderd/telemetry/telemetry_test.go:1368–1405  ·  view source on GitHub ↗
(ctx context.Context, t *testing.T)

Source from the content-addressed store, hash-verified

1366}
1367
1368func mockTelemetryServer(ctx context.Context, t *testing.T) (*url.URL, chan *telemetry.Deployment, chan *telemetry.Snapshot) {
1369 t.Helper()
1370 deployment := make(chan *telemetry.Deployment, 64)
1371 snapshot := make(chan *telemetry.Snapshot, 64)
1372 r := chi.NewRouter()
1373 r.Post("/deployment", func(w http.ResponseWriter, r *http.Request) {
1374 require.Equal(t, buildinfo.Version(), r.Header.Get(telemetry.VersionHeader))
1375 dd := &telemetry.Deployment{}
1376 err := json.NewDecoder(r.Body).Decode(dd)
1377 require.NoError(t, err)
1378 ok := testutil.AssertSend(ctx, t, deployment, dd)
1379 if !ok {
1380 w.WriteHeader(http.StatusInternalServerError)
1381 return
1382 }
1383 // Ensure the header is sent only after deployment is sent
1384 w.WriteHeader(http.StatusAccepted)
1385 })
1386 r.Post("/snapshot", func(w http.ResponseWriter, r *http.Request) {
1387 require.Equal(t, buildinfo.Version(), r.Header.Get(telemetry.VersionHeader))
1388 ss := &telemetry.Snapshot{}
1389 err := json.NewDecoder(r.Body).Decode(ss)
1390 require.NoError(t, err)
1391 ok := testutil.AssertSend(ctx, t, snapshot, ss)
1392 if !ok {
1393 w.WriteHeader(http.StatusInternalServerError)
1394 return
1395 }
1396 // Ensure the header is sent only after snapshot is sent
1397 w.WriteHeader(http.StatusAccepted)
1398 })
1399 server := httptest.NewServer(r)
1400 t.Cleanup(server.Close)
1401 serverURL, err := url.Parse(server.URL)
1402 require.NoError(t, err)
1403
1404 return serverURL, deployment, snapshot
1405}
1406
1407func collectSnapshot(
1408 ctx context.Context,

Callers 1

collectSnapshotFunction · 0.70

Calls 8

VersionFunction · 0.92
AssertSendFunction · 0.92
HelperMethod · 0.65
GetMethod · 0.65
CleanupMethod · 0.65
ParseMethod · 0.65
EqualMethod · 0.45
WriteHeaderMethod · 0.45

Tested by

no test coverage detected