(t *testing.T)
| 3016 | } |
| 3017 | |
| 3018 | func 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) |
nothing calls this directly
no test coverage detected