@@ -2,6 +2,7 @@ package coderd_test
22
33import (
44 "context"
5+ "database/sql"
56 "encoding/json"
67 "net/http"
78 "os"
@@ -10,6 +11,7 @@ import (
1011 "testing"
1112
1213 "github.com/google/uuid"
14+ "github.com/sqlc-dev/pqtype"
1315 "github.com/stretchr/testify/require"
1416 "go.uber.org/mock/gomock"
1517 "golang.org/x/xerrors"
@@ -20,6 +22,8 @@ import (
2022 "github.com/coder/coder/v2/coderd/coderdtest"
2123 "github.com/coder/coder/v2/coderd/database"
2224 "github.com/coder/coder/v2/coderd/database/dbauthz"
25+ "github.com/coder/coder/v2/coderd/database/dbgen"
26+ "github.com/coder/coder/v2/coderd/database/dbtime"
2327 "github.com/coder/coder/v2/coderd/rbac"
2428 "github.com/coder/coder/v2/coderd/workspaceapps"
2529 "github.com/coder/coder/v2/codersdk"
@@ -147,15 +151,60 @@ func TestGetWorkspaceSkills(t *testing.T) {
147151 require .Empty (t , skills )
148152 require .NotNil (t , skills )
149153
150- workspace = coderdtest .MustTransitionWorkspace (t , client , workspace .ID , codersdk .WorkspaceTransitionStop , codersdk .WorkspaceTransitionDelete )
151- require .NoError (t , db .UpdateWorkspaceDeletedByID (dbauthz .AsSystemRestricted (ctx ), database.UpdateWorkspaceDeletedByIDParams {
152- ID : workspace .ID ,
153- Deleted : false ,
154- }))
154+ deleteJobID := uuid .New ()
155+ now := dbtime .Now ()
156+ _ , err = db .InsertProvisionerJob (dbauthz .AsSystemRestricted (ctx ), database.InsertProvisionerJobParams {
157+ ID : deleteJobID ,
158+ CreatedAt : now ,
159+ UpdatedAt : now ,
160+ OrganizationID : user .OrganizationID ,
161+ InitiatorID : user .UserID ,
162+ Provisioner : database .ProvisionerTypeEcho ,
163+ StorageMethod : database .ProvisionerStorageMethodFile ,
164+ FileID : uuid .New (),
165+ Type : database .ProvisionerJobTypeWorkspaceBuild ,
166+ Input : json .RawMessage ("{}" ),
167+ Tags : database.StringMap {},
168+ TraceMetadata : pqtype.NullRawMessage {},
169+ })
170+ require .NoError (t , err )
171+ deleteBuild := dbgen .WorkspaceBuild (t , db , database.WorkspaceBuild {
172+ WorkspaceID : workspace .ID ,
173+ TemplateVersionID : workspace .LatestBuild .TemplateVersionID ,
174+ BuildNumber : workspace .LatestBuild .BuildNumber + 1 ,
175+ Transition : database .WorkspaceTransitionDelete ,
176+ InitiatorID : user .UserID ,
177+ JobID : deleteJobID ,
178+ })
179+ deleteResource := dbgen .WorkspaceResource (t , db , database.WorkspaceResource {
180+ JobID : deleteBuild .JobID ,
181+ Transition : database .WorkspaceTransitionDelete ,
182+ })
183+ connectedAt := dbtime .Now ()
184+ dbgen .WorkspaceAgent (t , db , database.WorkspaceAgent {
185+ ResourceID : deleteResource .ID ,
186+ FirstConnectedAt : sql.NullTime {
187+ Time : connectedAt ,
188+ Valid : true ,
189+ },
190+ LastConnectedAt : sql.NullTime {
191+ Time : connectedAt ,
192+ Valid : true ,
193+ },
194+ })
195+ agentProviderCalled := false
196+ restore = coderd .SetAgentProviderForTest (api , workspaceSkillsAgentProvider {
197+ agentConn : func (context.Context , uuid.UUID ) (workspacesdk.AgentConn , func (), error ) {
198+ agentProviderCalled = true
199+ return nil , nil , xerrors .New ("unexpected agent dial" )
200+ },
201+ })
155202 skills , err = expClient .WorkspaceSkills (ctx , workspace .ID )
203+ restore ()
156204 require .NoError (t , err )
157205 require .Empty (t , skills )
158206 require .NotNil (t , skills )
207+ require .False (t , agentProviderCalled )
159208
160209 require .NoError (t , db .UpdateWorkspaceDeletedByID (dbauthz .AsSystemRestricted (ctx ), database.UpdateWorkspaceDeletedByIDParams {
161210 ID : workspace .ID ,
0 commit comments