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

Function TestPrebuiltWorkspacesTelemetry

coderd/telemetry/telemetry_test.go:640–697  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

638}
639
640func TestPrebuiltWorkspacesTelemetry(t *testing.T) {
641 t.Parallel()
642 db, _ := dbtestutil.NewDB(t)
643
644 cases := []struct {
645 name string
646 storeFn func(store database.Store) database.Store
647 expectedSnapshotEntries int
648 expectedCreated int
649 expectedFailed int
650 expectedClaimed int
651 }{
652 {
653 name: "prebuilds enabled",
654 storeFn: func(store database.Store) database.Store {
655 return &mockDB{Store: store}
656 },
657 expectedSnapshotEntries: 3,
658 expectedCreated: 5,
659 expectedFailed: 2,
660 expectedClaimed: 3,
661 },
662 {
663 name: "prebuilds not used",
664 storeFn: func(store database.Store) database.Store {
665 return &emptyMockDB{Store: store}
666 },
667 },
668 }
669
670 for _, tc := range cases {
671 t.Run(tc.name, func(t *testing.T) {
672 t.Parallel()
673 ctx := testutil.Context(t, testutil.WaitShort)
674
675 deployment, snapshot := collectSnapshot(ctx, t, db, func(opts telemetry.Options) telemetry.Options {
676 opts.Database = tc.storeFn(db)
677 return opts
678 })
679
680 require.NotNil(t, deployment)
681 require.NotNil(t, snapshot)
682
683 require.Len(t, snapshot.PrebuiltWorkspaces, tc.expectedSnapshotEntries)
684
685 eventCounts := make(map[telemetry.PrebuiltWorkspaceEventType]int)
686 for _, event := range snapshot.PrebuiltWorkspaces {
687 eventCounts[event.EventType] = event.Count
688 require.NotEqual(t, uuid.Nil, event.ID)
689 require.False(t, event.CreatedAt.IsZero())
690 }
691
692 require.Equal(t, tc.expectedCreated, eventCounts[telemetry.PrebuiltWorkspaceEventTypeCreated])
693 require.Equal(t, tc.expectedFailed, eventCounts[telemetry.PrebuiltWorkspaceEventTypeFailed])
694 require.Equal(t, tc.expectedClaimed, eventCounts[telemetry.PrebuiltWorkspaceEventTypeClaimed])
695 })
696 }
697}

Callers

nothing calls this directly

Calls 7

NewDBFunction · 0.92
ContextFunction · 0.92
collectSnapshotFunction · 0.85
RunMethod · 0.65
LenMethod · 0.45
IsZeroMethod · 0.45
EqualMethod · 0.45

Tested by

no test coverage detected