@@ -20,7 +20,6 @@ import (
20
20
"github.com/coder/coder/v2/buildinfo"
21
21
"github.com/coder/coder/v2/coderd/database"
22
22
"github.com/coder/coder/v2/coderd/database/dbgen"
23
- "github.com/coder/coder/v2/coderd/database/dbmem"
24
23
"github.com/coder/coder/v2/coderd/database/dbtestutil"
25
24
"github.com/coder/coder/v2/coderd/database/dbtime"
26
25
"github.com/coder/coder/v2/coderd/idpsync"
@@ -41,48 +40,79 @@ func TestTelemetry(t *testing.T) {
41
40
42
41
var err error
43
42
44
- db := dbmem . New ( )
43
+ db , _ := dbtestutil . NewDB ( t )
45
44
46
45
ctx := testutil .Context (t ,testutil .WaitMedium )
47
46
48
47
org ,err := db .GetDefaultOrganization (ctx )
49
48
require .NoError (t ,err )
50
49
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 {
53
60
Provisioner :database .ProvisionerTypeTerraform ,
54
61
StorageMethod :database .ProvisionerStorageMethodFile ,
55
62
Type :database .ProvisionerJobTypeTemplateVersionDryRun ,
56
63
OrganizationID :org .ID ,
57
64
})
58
- _ = dbgen .Template (t ,db , database.Template {
65
+ tpl : =dbgen .Template (t ,db , database.Template {
59
66
Provisioner :database .ProvisionerTypeTerraform ,
60
67
OrganizationID :org .ID ,
68
+ CreatedBy :user .ID ,
61
69
})
62
70
sourceExampleID := uuid .NewString ()
63
- _ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
71
+ tv : =dbgen .TemplateVersion (t ,db , database.TemplateVersion {
64
72
SourceExampleID : sql.NullString {String :sourceExampleID ,Valid :true },
65
73
OrganizationID :org .ID ,
74
+ TemplateID : uuid.NullUUID {UUID :tpl .ID ,Valid :true },
75
+ CreatedBy :user .ID ,
76
+ JobID :job .ID ,
66
77
})
67
78
_ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
68
79
OrganizationID :org .ID ,
80
+ TemplateID : uuid.NullUUID {UUID :tpl .ID ,Valid :true },
81
+ CreatedBy :user .ID ,
82
+ JobID :job .ID ,
69
83
})
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 ,
72
86
OrganizationID :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 ,
73
101
})
74
102
_ = dbgen .WorkspaceApp (t ,db , database.WorkspaceApp {
75
103
SharingLevel :database .AppSharingLevelOwner ,
76
104
Health :database .WorkspaceAppHealthDisabled ,
77
105
OpenIn :database .WorkspaceAppOpenInSlimWindow ,
106
+ AgentID :wsagent .ID ,
107
+ })
108
+ group := dbgen .Group (t ,db , database.Group {
109
+ OrganizationID :org .ID ,
78
110
})
79
111
_ = dbgen .TelemetryItem (t ,db , database.TelemetryItem {
80
112
Key :string (telemetry .TelemetryItemKeyHTMLFirstServedAt ),
81
113
Value :time .Now ().Format (time .RFC3339 ),
82
114
})
83
- group := dbgen .Group (t ,db , database.Group {})
84
115
_ = dbgen .GroupMember (t ,db , database.GroupMemberTable {UserID :user .ID ,GroupID :group .ID })
85
- wsagent := dbgen .WorkspaceAgent (t ,db , database.WorkspaceAgent {})
86
116
// Update the workspace agent to have a valid subsystem.
87
117
err = db .UpdateWorkspaceAgentStartupByID (ctx , database.UpdateWorkspaceAgentStartupByIDParams {
88
118
ID :wsagent .ID ,
@@ -95,14 +125,9 @@ func TestTelemetry(t *testing.T) {
95
125
})
96
126
require .NoError (t ,err )
97
127
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 ,
104
130
})
105
- _ = dbgen .WorkspaceAgentStat (t ,db , database.WorkspaceAgentStat {})
106
131
_ ,err = db .InsertLicense (ctx , database.InsertLicenseParams {
107
132
UploadedAt :dbtime .Now (),
108
133
JWT :"" ,
@@ -112,9 +137,15 @@ func TestTelemetry(t *testing.T) {
112
137
assert .NoError (t ,err )
113
138
_ ,_ = dbgen .WorkspaceProxy (t ,db , database.WorkspaceProxy {})
114
139
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
+ })
118
149
119
150
_ ,snapshot := collectSnapshot (ctx ,t ,db ,nil )
120
151
require .Len (t ,snapshot .ProvisionerJobs ,1 )
@@ -170,7 +201,7 @@ func TestTelemetry(t *testing.T) {
170
201
t .Run ("HashedEmail" ,func (t * testing.T ) {
171
202
t .Parallel ()
172
203
ctx := testutil .Context (t ,testutil .WaitMedium )
173
- db := dbmem . New ( )
204
+ db , _ := dbtestutil . NewDB ( t )
174
205
_ = dbgen .User (t ,db , database.User {
175
206
Email :"kyle@coder.com" ,
176
207
})
@@ -324,7 +355,7 @@ func TestTelemetry(t *testing.T) {
324
355
func TestTelemetryInstallSource (t * testing.T ) {
325
356
t .Setenv ("CODER_TELEMETRY_INSTALL_SOURCE" ,"aws_marketplace" )
326
357
ctx := testutil .Context (t ,testutil .WaitMedium )
327
- db := dbmem . New ( )
358
+ db , _ := dbtestutil . NewDB ( t )
328
359
deployment ,_ := collectSnapshot (ctx ,t ,db ,nil )
329
360
require .Equal (t ,"aws_marketplace" ,deployment .InstallSource )
330
361
}