11package telemetry_test
22
33import (
4+ "database/sql"
45"encoding/json"
56"net/http"
67"net/http/httptest"
@@ -48,6 +49,10 @@ func TestTelemetry(t *testing.T) {
4849_ = dbgen .Template (t ,db , database.Template {
4950Provisioner :database .ProvisionerTypeTerraform ,
5051})
52+ sourceExampleID := uuid .NewString ()
53+ _ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {
54+ SourceExampleID : sql.NullString {String :sourceExampleID ,Valid :true },
55+ })
5156_ = dbgen .TemplateVersion (t ,db , database.TemplateVersion {})
5257user := dbgen .User (t ,db , database.User {})
5358_ = dbgen .Workspace (t ,db , database.WorkspaceTable {})
@@ -93,7 +98,7 @@ func TestTelemetry(t *testing.T) {
9398require .Len (t ,snapshot .ProvisionerJobs ,1 )
9499require .Len (t ,snapshot .Licenses ,1 )
95100require .Len (t ,snapshot .Templates ,1 )
96- require .Len (t ,snapshot .TemplateVersions ,1 )
101+ require .Len (t ,snapshot .TemplateVersions ,2 )
97102require .Len (t ,snapshot .Users ,1 )
98103require .Len (t ,snapshot .Groups ,2 )
99104// 1 member in the everyone group + 1 member in the custom group
@@ -111,6 +116,17 @@ func TestTelemetry(t *testing.T) {
111116require .Len (t ,wsa .Subsystems ,2 )
112117require .Equal (t ,string (database .WorkspaceAgentSubsystemEnvbox ),wsa .Subsystems [0 ])
113118require .Equal (t ,string (database .WorkspaceAgentSubsystemExectrace ),wsa .Subsystems [1 ])
119+
120+ tvs := snapshot .TemplateVersions
121+ sort .Slice (tvs ,func (i ,j int )bool {
122+ // Sort by SourceExampleID presence (non-nil comes before nil)
123+ if (tvs [i ].SourceExampleID != nil )!= (tvs [j ].SourceExampleID != nil ) {
124+ return tvs [i ].SourceExampleID != nil
125+ }
126+ return false
127+ })
128+ require .Equal (t ,tvs [0 ].SourceExampleID ,& sourceExampleID )
129+ require .Nil (t ,tvs [1 ].SourceExampleID )
114130})
115131t .Run ("HashedEmail" ,func (t * testing.T ) {
116132t .Parallel ()