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

Function TestWorkspaceUsageTracking

coderd/workspaces_test.go:4949–5071  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

4947}
4948
4949func TestWorkspaceUsageTracking(t *testing.T) {
4950 t.Parallel()
4951 t.Run("NoExperiment", func(t *testing.T) {
4952 t.Parallel()
4953 client, db := coderdtest.NewWithDatabase(t, nil)
4954 user := coderdtest.CreateFirstUser(t, client)
4955 tmpDir := t.TempDir()
4956 r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
4957 OrganizationID: user.OrganizationID,
4958 OwnerID: user.UserID,
4959 }).WithAgent(func(agents []*proto.Agent) []*proto.Agent {
4960 agents[0].Directory = tmpDir
4961 return agents
4962 }).Do()
4963
4964 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
4965 defer cancel()
4966
4967 // continue legacy behavior
4968 err := client.PostWorkspaceUsage(ctx, r.Workspace.ID)
4969 require.NoError(t, err)
4970 err = client.PostWorkspaceUsageWithBody(ctx, r.Workspace.ID, codersdk.PostWorkspaceUsageRequest{})
4971 require.NoError(t, err)
4972 })
4973 t.Run("Experiment", func(t *testing.T) {
4974 t.Parallel()
4975 ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitMedium)
4976 defer cancel()
4977 dv := coderdtest.DeploymentValues(t)
4978 dv.Experiments = []string{string(codersdk.ExperimentWorkspaceUsage)}
4979 client, db := coderdtest.NewWithDatabase(t, &coderdtest.Options{
4980 DeploymentValues: dv,
4981 })
4982 user := coderdtest.CreateFirstUser(t, client)
4983 tmpDir := t.TempDir()
4984 org := dbgen.Organization(t, db, database.Organization{})
4985 _ = dbgen.OrganizationMember(t, db, database.OrganizationMember{
4986 UserID: user.UserID,
4987 OrganizationID: org.ID,
4988 })
4989 templateVersion := dbgen.TemplateVersion(t, db, database.TemplateVersion{
4990 OrganizationID: org.ID,
4991 CreatedBy: user.UserID,
4992 })
4993 template := dbgen.Template(t, db, database.Template{
4994 OrganizationID: org.ID,
4995 ActiveVersionID: templateVersion.ID,
4996 CreatedBy: user.UserID,
4997 DefaultTTL: int64(8 * time.Hour),
4998 })
4999 _, err := client.UpdateTemplateMeta(ctx, template.ID, codersdk.UpdateTemplateMeta{
5000 ActivityBumpMillis: ptr.Ref(8 * time.Hour.Milliseconds()),
5001 })
5002 require.NoError(t, err)
5003 r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
5004 OrganizationID: user.OrganizationID,
5005 OwnerID: user.UserID,
5006 TemplateID: template.ID,

Callers

nothing calls this directly

Calls 15

NewWithDatabaseFunction · 0.92
CreateFirstUserFunction · 0.92
WorkspaceBuildFunction · 0.92
DeploymentValuesFunction · 0.92
OrganizationFunction · 0.92
OrganizationMemberFunction · 0.92
TemplateVersionFunction · 0.92
TemplateFunction · 0.92
RefFunction · 0.92
WithAgentMethod · 0.80
PostWorkspaceUsageMethod · 0.80

Tested by

no test coverage detected