@@ -20,7 +20,6 @@ import (
2020"github.com/coder/coder/v2/buildinfo"
2121"github.com/coder/coder/v2/coderd/database"
2222"github.com/coder/coder/v2/coderd/database/dbgen"
23- "github.com/coder/coder/v2/coderd/database/dbmem"
2423"github.com/coder/coder/v2/coderd/database/dbtestutil"
2524"github.com/coder/coder/v2/coderd/database/dbtime"
2625"github.com/coder/coder/v2/coderd/idpsync"
@@ -41,48 +40,79 @@ func TestTelemetry(t *testing.T) {
4140
4241var err error
4342
44- db := dbmem . New ( )
43+ db , _ := dbtestutil . NewDB ( t )
4544
4645ctx := testutil .Context (t ,testutil .WaitMedium )
4746
4847org ,err := db .GetDefaultOrganization (ctx )
4948require .NoError (t ,err )
5049
51- _ ,_ = dbgen .APIKey (t ,db , database.APIKey {})
52- _ = dbgen .ProvisionerJob (t ,db ,nil , database.ProvisionerJob {
50+ user := dbgen .User (t ,db , database.User {})
51+ _ = dbgen .OrganizationMember (t ,db , database.OrganizationMember {
52+ UserID :user .ID ,
53+ OrganizationID :org .ID ,
54+ })
55+ require .NoError (t ,err )
56+ _ ,_ = dbgen .APIKey (t ,db , database.APIKey {
57+ UserID :user .ID ,
58+ })
59+ job := dbgen .ProvisionerJob (t ,db ,nil , database.ProvisionerJob {
5360Provisioner :database .ProvisionerTypeTerraform ,
5461StorageMethod :database .ProvisionerStorageMethodFile ,
5562Type :database .ProvisionerJobTypeTemplateVersionDryRun ,
5663OrganizationID :org .ID ,
5764})
58- _ = dbgen .Template (t ,db , database.Template {
65+ tpl : =dbgen .Template (t ,db , database.Template {
5966Provisioner :database .ProvisionerTypeTerraform ,
6067OrganizationID :org .ID ,
68+ CreatedBy :user .ID ,
6169})
6270sourceExampleID := uuid .NewString ()
63- _ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
71+ tv : =dbgen .TemplateVersion (t ,db , database.TemplateVersion {
6472SourceExampleID : sql.NullString {String :sourceExampleID ,Valid :true },
6573OrganizationID :org .ID ,
74+ TemplateID : uuid.NullUUID {UUID :tpl .ID ,Valid :true },
75+ CreatedBy :user .ID ,
76+ JobID :job .ID ,
6677})
6778_ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
6879OrganizationID :org .ID ,
80+ TemplateID : uuid.NullUUID {UUID :tpl .ID ,Valid :true },
81+ CreatedBy :user .ID ,
82+ JobID :job .ID ,
6983})
70- user := dbgen .User (t ,db , database.User {})
71- _ = dbgen . Workspace ( t , db , database. WorkspaceTable {
84+ ws := dbgen .Workspace (t ,db , database.WorkspaceTable {
85+ OwnerID : user . ID ,
7286OrganizationID :org .ID ,
87+ TemplateID :tpl .ID ,
88+ })
89+ _ = dbgen .WorkspaceBuild (t ,db , database.WorkspaceBuild {
90+ Transition :database .WorkspaceTransitionStart ,
91+ Reason :database .BuildReasonAutostart ,
92+ WorkspaceID :ws .ID ,
93+ TemplateVersionID :tv .ID ,
94+ JobID :job .ID ,
95+ })
96+ wsresource := dbgen .WorkspaceResource (t ,db , database.WorkspaceResource {
97+ JobID :job .ID ,
98+ })
99+ wsagent := dbgen .WorkspaceAgent (t ,db , database.WorkspaceAgent {
100+ ResourceID :wsresource .ID ,
73101})
74102_ = dbgen .WorkspaceApp (t ,db , database.WorkspaceApp {
75103SharingLevel :database .AppSharingLevelOwner ,
76104Health :database .WorkspaceAppHealthDisabled ,
77105OpenIn :database .WorkspaceAppOpenInSlimWindow ,
106+ AgentID :wsagent .ID ,
107+ })
108+ group := dbgen .Group (t ,db , database.Group {
109+ OrganizationID :org .ID ,
78110})
79111_ = dbgen .TelemetryItem (t ,db , database.TelemetryItem {
80112Key :string (telemetry .TelemetryItemKeyHTMLFirstServedAt ),
81113Value :time .Now ().Format (time .RFC3339 ),
82114})
83- group := dbgen .Group (t ,db , database.Group {})
84115_ = dbgen .GroupMember (t ,db , database.GroupMemberTable {UserID :user .ID ,GroupID :group .ID })
85- wsagent := dbgen .WorkspaceAgent (t ,db , database.WorkspaceAgent {})
86116// Update the workspace agent to have a valid subsystem.
87117err = db .UpdateWorkspaceAgentStartupByID (ctx , database.UpdateWorkspaceAgentStartupByIDParams {
88118ID :wsagent .ID ,
@@ -95,14 +125,9 @@ func TestTelemetry(t *testing.T) {
95125})
96126require .NoError (t ,err )
97127
98- _ = dbgen .WorkspaceBuild (t ,db , database.WorkspaceBuild {
99- Transition :database .WorkspaceTransitionStart ,
100- Reason :database .BuildReasonAutostart ,
101- })
102- _ = dbgen .WorkspaceResource (t ,db , database.WorkspaceResource {
103- Transition :database .WorkspaceTransitionStart ,
128+ _ = dbgen .WorkspaceAgentStat (t ,db , database.WorkspaceAgentStat {
129+ ConnectionMedianLatencyMS :1 ,
104130})
105- _ = dbgen .WorkspaceAgentStat (t ,db , database.WorkspaceAgentStat {})
106131_ ,err = db .InsertLicense (ctx , database.InsertLicenseParams {
107132UploadedAt :dbtime .Now (),
108133JWT :"" ,
@@ -112,9 +137,15 @@ func TestTelemetry(t *testing.T) {
112137assert .NoError (t ,err )
113138_ ,_ = dbgen .WorkspaceProxy (t ,db , database.WorkspaceProxy {})
114139
115- _ = dbgen .WorkspaceModule (t ,db , database.WorkspaceModule {})
116- _ = dbgen .WorkspaceAgentMemoryResourceMonitor (t ,db , database.WorkspaceAgentMemoryResourceMonitor {})
117- _ = dbgen .WorkspaceAgentVolumeResourceMonitor (t ,db , database.WorkspaceAgentVolumeResourceMonitor {})
140+ _ = dbgen .WorkspaceModule (t ,db , database.WorkspaceModule {
141+ JobID :job .ID ,
142+ })
143+ _ = dbgen .WorkspaceAgentMemoryResourceMonitor (t ,db , database.WorkspaceAgentMemoryResourceMonitor {
144+ AgentID :wsagent .ID ,
145+ })
146+ _ = dbgen .WorkspaceAgentVolumeResourceMonitor (t ,db , database.WorkspaceAgentVolumeResourceMonitor {
147+ AgentID :wsagent .ID ,
148+ })
118149
119150_ ,snapshot := collectSnapshot (ctx ,t ,db ,nil )
120151require .Len (t ,snapshot .ProvisionerJobs ,1 )
@@ -170,7 +201,7 @@ func TestTelemetry(t *testing.T) {
170201t .Run ("HashedEmail" ,func (t * testing.T ) {
171202t .Parallel ()
172203ctx := testutil .Context (t ,testutil .WaitMedium )
173- db := dbmem . New ( )
204+ db , _ := dbtestutil . NewDB ( t )
174205_ = dbgen .User (t ,db , database.User {
175206Email :"kyle@coder.com" ,
176207})
@@ -324,7 +355,7 @@ func TestTelemetry(t *testing.T) {
324355func TestTelemetryInstallSource (t * testing.T ) {
325356t .Setenv ("CODER_TELEMETRY_INSTALL_SOURCE" ,"aws_marketplace" )
326357ctx := testutil .Context (t ,testutil .WaitMedium )
327- db := dbmem . New ( )
358+ db , _ := dbtestutil . NewDB ( t )
328359deployment ,_ := collectSnapshot (ctx ,t ,db ,nil )
329360require .Equal (t ,"aws_marketplace" ,deployment .InstallSource )
330361}