(t *testing.T)
| 251 | } |
| 252 | |
| 253 | func TestWorkspaceAgentAppStatus(t *testing.T) { |
| 254 | t.Parallel() |
| 255 | |
| 256 | t.Run("Success", func(t *testing.T) { |
| 257 | t.Parallel() |
| 258 | |
| 259 | ctx := testutil.Context(t, testutil.WaitShort) |
| 260 | ctrl := gomock.NewController(t) |
| 261 | mDB := dbmock.NewMockStore(ctrl) |
| 262 | fEnq := ¬ificationstest.FakeEnqueuer{} |
| 263 | mClock := quartz.NewMock(t) |
| 264 | agent := database.WorkspaceAgent{ |
| 265 | ID: uuid.UUID{2}, |
| 266 | LifecycleState: database.WorkspaceAgentLifecycleStateReady, |
| 267 | } |
| 268 | workspaceUpdates := make(chan wspubsub.WorkspaceEventKind, 100) |
| 269 | |
| 270 | workspace := database.Workspace{ |
| 271 | ID: uuid.UUID{9}, |
| 272 | TaskID: uuid.NullUUID{ |
| 273 | Valid: true, |
| 274 | UUID: uuid.UUID{7}, |
| 275 | }, |
| 276 | } |
| 277 | cachedWs := &agentapi.CachedWorkspaceFields{} |
| 278 | cachedWs.UpdateValues(workspace) |
| 279 | |
| 280 | api := &agentapi.AppsAPI{ |
| 281 | AgentID: agent.ID, |
| 282 | AgentFn: func(context.Context) (database.WorkspaceAgent, error) { |
| 283 | return agent, nil |
| 284 | }, |
| 285 | Database: mDB, |
| 286 | Log: testutil.Logger(t), |
| 287 | Workspace: cachedWs, |
| 288 | PublishWorkspaceUpdateFn: func(_ context.Context, agnt uuid.UUID, kind wspubsub.WorkspaceEventKind) error { |
| 289 | assert.Equal(t, agnt, agent.ID) |
| 290 | testutil.AssertSend(ctx, t, workspaceUpdates, kind) |
| 291 | return nil |
| 292 | }, |
| 293 | NotificationsEnqueuer: fEnq, |
| 294 | Clock: mClock, |
| 295 | } |
| 296 | |
| 297 | app := database.WorkspaceApp{ |
| 298 | ID: uuid.UUID{8}, |
| 299 | } |
| 300 | mDB.EXPECT().GetWorkspaceAppByAgentIDAndSlug(gomock.Any(), database.GetWorkspaceAppByAgentIDAndSlugParams{ |
| 301 | AgentID: agent.ID, |
| 302 | Slug: "vscode", |
| 303 | }).Times(1).Return(app, nil) |
| 304 | task := database.Task{ |
| 305 | ID: uuid.UUID{7}, |
| 306 | WorkspaceAppID: uuid.NullUUID{ |
| 307 | Valid: true, |
| 308 | UUID: app.ID, |
| 309 | }, |
| 310 | } |
nothing calls this directly
no test coverage detected