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

Function TestWorkspaceProvisionerdServerMetrics

enterprise/coderd/workspaces_test.go:3018–3170  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

3016}
3017
3018func TestWorkspaceProvisionerdServerMetrics(t *testing.T) {
3019 t.Parallel()
3020
3021 // Setup
3022 clock := quartz.NewMock(t)
3023 ctx := testutil.Context(t, testutil.WaitSuperLong)
3024 db, pb := dbtestutil.NewDB(t, dbtestutil.WithDumpOnFailure())
3025 logger := testutil.Logger(t)
3026 reg := prometheus.NewRegistry()
3027 provisionerdserverMetrics := provisionerdserver.NewMetrics(logger)
3028 err := provisionerdserverMetrics.Register(reg)
3029 require.NoError(t, err)
3030 client, _, api, owner := coderdenttest.NewWithAPI(t, &coderdenttest.Options{
3031 Options: &coderdtest.Options{
3032 Database: db,
3033 Pubsub: pb,
3034 IncludeProvisionerDaemon: true,
3035 Clock: clock,
3036 ProvisionerdServerMetrics: provisionerdserverMetrics,
3037 },
3038 })
3039
3040 // Setup Prebuild reconciler
3041 cache := files.New(prometheus.NewRegistry(), &coderdtest.FakeAuthorizer{})
3042 reconciler := prebuilds.NewStoreReconciler(
3043 db, pb, cache,
3044 codersdk.PrebuildsConfig{},
3045 logger,
3046 clock,
3047 prometheus.NewRegistry(),
3048 notifications.NewNoopEnqueuer(),
3049 api.AGPL.BuildUsageChecker,
3050 noop.NewTracerProvider(),
3051 10,
3052 nil,
3053 )
3054 var claimer agplprebuilds.Claimer = prebuilds.NewEnterpriseClaimer()
3055 api.AGPL.PrebuildsClaimer.Store(&claimer)
3056
3057 organizationName, err := client.Organization(ctx, owner.OrganizationID)
3058 require.NoError(t, err)
3059 userClient, user := coderdtest.CreateAnotherUser(t, client, owner.OrganizationID, rbac.RoleMember())
3060
3061 // Setup template and template version with a preset with 1 prebuild instance
3062 versionPrebuild := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, templateWithAgentAndPresetsWithPrebuilds(1))
3063 coderdtest.AwaitTemplateVersionJobCompleted(t, client, versionPrebuild.ID)
3064 templatePrebuild := coderdtest.CreateTemplate(t, client, owner.OrganizationID, versionPrebuild.ID)
3065 presetsPrebuild, err := client.TemplateVersionPresets(ctx, versionPrebuild.ID)
3066 require.NoError(t, err)
3067 require.Len(t, presetsPrebuild, 1)
3068
3069 // Setup template and template version with a preset without prebuild instances
3070 versionNoPrebuild := coderdtest.CreateTemplateVersion(t, client, owner.OrganizationID, templateWithAgentAndPresetsWithPrebuilds(0))
3071 coderdtest.AwaitTemplateVersionJobCompleted(t, client, versionNoPrebuild.ID)
3072 templateNoPrebuild := coderdtest.CreateTemplate(t, client, owner.OrganizationID, versionNoPrebuild.ID)
3073 presetsNoPrebuild, err := client.TemplateVersionPresets(ctx, versionNoPrebuild.ID)
3074 require.NoError(t, err)
3075 require.Len(t, presetsNoPrebuild, 1)

Callers

nothing calls this directly

Calls 15

RegisterMethod · 0.95
ContextFunction · 0.92
NewDBFunction · 0.92
WithDumpOnFailureFunction · 0.92
LoggerFunction · 0.92
NewMetricsFunction · 0.92
NewWithAPIFunction · 0.92
NewFunction · 0.92
NewStoreReconcilerFunction · 0.92
NewNoopEnqueuerFunction · 0.92
NewEnterpriseClaimerFunction · 0.92
CreateAnotherUserFunction · 0.92

Tested by

no test coverage detected