MCPcopy Index your code
hub / github.com/coder/coder / TestBatchUpdateAppHealths

Function TestBatchUpdateAppHealths

coderd/agentapi/apps_test.go:27–251  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

25)
26
27func TestBatchUpdateAppHealths(t *testing.T) {
28 t.Parallel()
29
30 var (
31 agent = database.WorkspaceAgent{
32 ID: uuid.New(),
33 }
34 app1 = database.WorkspaceApp{
35 ID: uuid.New(),
36 AgentID: agent.ID,
37 Slug: "code-server-1",
38 DisplayName: "code-server 1",
39 HealthcheckUrl: "http://localhost:3000",
40 Health: database.WorkspaceAppHealthInitializing,
41 OpenIn: database.WorkspaceAppOpenInSlimWindow,
42 }
43 app2 = database.WorkspaceApp{
44 ID: uuid.New(),
45 AgentID: agent.ID,
46 Slug: "code-server-2",
47 DisplayName: "code-server 2",
48 HealthcheckUrl: "http://localhost:3001",
49 Health: database.WorkspaceAppHealthHealthy,
50 OpenIn: database.WorkspaceAppOpenInSlimWindow,
51 }
52 )
53
54 t.Run("OK", func(t *testing.T) {
55 t.Parallel()
56
57 dbM := dbmock.NewMockStore(gomock.NewController(t))
58 dbM.EXPECT().GetWorkspaceAppsByAgentID(gomock.Any(), agent.ID).Return([]database.WorkspaceApp{app1, app2}, nil)
59 dbM.EXPECT().UpdateWorkspaceAppHealthByID(gomock.Any(), database.UpdateWorkspaceAppHealthByIDParams{
60 ID: app1.ID,
61 Health: database.WorkspaceAppHealthHealthy,
62 }).Return(nil)
63 dbM.EXPECT().UpdateWorkspaceAppHealthByID(gomock.Any(), database.UpdateWorkspaceAppHealthByIDParams{
64 ID: app2.ID,
65 Health: database.WorkspaceAppHealthUnhealthy,
66 }).Return(nil)
67
68 publishCalled := false
69 api := &agentapi.AppsAPI{
70 AgentID: agent.ID,
71 Database: dbM,
72 Log: testutil.Logger(t),
73 PublishWorkspaceUpdateFn: func(ctx context.Context, _ uuid.UUID, kind wspubsub.WorkspaceEventKind) error {
74 publishCalled = true
75 return nil
76 },
77 }
78
79 // Set one to healthy, set another to unhealthy.
80 resp, err := api.BatchUpdateAppHealths(context.Background(), &agentproto.BatchUpdateAppHealthRequest{
81 Updates: []*agentproto.BatchUpdateAppHealthRequest_HealthUpdate{
82 {
83 Id: app1.ID[:],
84 Health: agentproto.AppHealth_HEALTHY,

Callers

nothing calls this directly

Calls 10

EXPECTMethod · 0.95
BatchUpdateAppHealthsMethod · 0.95
NewMockStoreFunction · 0.92
LoggerFunction · 0.92
NewMethod · 0.65
RunMethod · 0.65
EqualMethod · 0.45
ErrorMethod · 0.45

Tested by

no test coverage detected