Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7674a8c

Browse files
committed
update test coverage for container devcontainer status
1 parent8f12b3c commit7674a8c

File tree

1 file changed

+31
-5
lines changed

1 file changed

+31
-5
lines changed

‎agent/agentcontainers/api_test.go

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -477,6 +477,8 @@ func TestAPI(t *testing.T) {
477477
require.NoError(t,err,"unmarshal response failed")
478478
require.Len(t,resp.Devcontainers,1,"expected one devcontainer in response")
479479
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusStarting,resp.Devcontainers[0].Status,"devcontainer is not starting")
480+
require.NotNil(t,resp.Devcontainers[0].Container,"devcontainer should have container reference")
481+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusStarting,resp.Devcontainers[0].Container.DevcontainerStatus,"container dc status is not starting")
480482

481483
// Allow the devcontainer CLI to continue the up process.
482484
close(tt.devcontainerCLI.continueUp)
@@ -503,6 +505,8 @@ func TestAPI(t *testing.T) {
503505
require.NoError(t,err,"unmarshal response failed after error")
504506
require.Len(t,resp.Devcontainers,1,"expected one devcontainer in response after error")
505507
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusError,resp.Devcontainers[0].Status,"devcontainer is not in an error state after up failure")
508+
require.NotNil(t,resp.Devcontainers[0].Container,"devcontainer should have container reference after up failure")
509+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusError,resp.Devcontainers[0].Container.DevcontainerStatus,"container dc status is not error after up failure")
506510
return
507511
}
508512

@@ -525,7 +529,9 @@ func TestAPI(t *testing.T) {
525529
err=json.NewDecoder(rec.Body).Decode(&resp)
526530
require.NoError(t,err,"unmarshal response failed after recreation")
527531
require.Len(t,resp.Devcontainers,1,"expected one devcontainer in response after recreation")
528-
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,resp.Devcontainers[0].Status,"devcontainer is not stopped after recreation")
532+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,resp.Devcontainers[0].Status,"devcontainer is not running after recreation")
533+
require.NotNil(t,resp.Devcontainers[0].Container,"devcontainer should have container reference after recreation")
534+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,resp.Devcontainers[0].Container.DevcontainerStatus,"container dc status is not running after recreation")
529535
})
530536
}
531537
})
@@ -620,6 +626,7 @@ func TestAPI(t *testing.T) {
620626
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,dc.Status)
621627
require.NotNil(t,dc.Container)
622628
assert.Equal(t,"runtime-container-1",dc.Container.ID)
629+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,dc.Container.DevcontainerStatus)
623630
},
624631
},
625632
{
@@ -660,12 +667,14 @@ func TestAPI(t *testing.T) {
660667
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusStopped,known2.Status)
661668
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,runtime1.Status)
662669

663-
require.NotNil(t,known1.Container)
664670
assert.Nil(t,known2.Container)
665-
require.NotNil(t,runtime1.Container)
666671

672+
require.NotNil(t,known1.Container)
667673
assert.Equal(t,"known-container-1",known1.Container.ID)
674+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,known1.Container.DevcontainerStatus)
675+
require.NotNil(t,runtime1.Container)
668676
assert.Equal(t,"runtime-container-1",runtime1.Container.ID)
677+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,runtime1.Container.DevcontainerStatus)
669678
},
670679
},
671680
{
@@ -704,10 +713,12 @@ func TestAPI(t *testing.T) {
704713
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusStopped,nonRunning.Status)
705714

706715
require.NotNil(t,running.Container,"running container should have container reference")
707-
require.NotNil(t,nonRunning.Container,"non-running container should have container reference")
708-
709716
assert.Equal(t,"running-container",running.Container.ID)
717+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,running.Container.DevcontainerStatus)
718+
719+
require.NotNil(t,nonRunning.Container,"non-running container should have container reference")
710720
assert.Equal(t,"non-running-container",nonRunning.Container.ID)
721+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusStopped,nonRunning.Container.DevcontainerStatus)
711722
},
712723
},
713724
{
@@ -743,6 +754,7 @@ func TestAPI(t *testing.T) {
743754
assert.NotEmpty(t,dc2.ConfigPath)
744755
require.NotNil(t,dc2.Container)
745756
assert.Equal(t,"known-container-2",dc2.Container.ID)
757+
assert.Equal(t,codersdk.WorkspaceAgentDevcontainerStatusRunning,dc2.Container.DevcontainerStatus)
746758
},
747759
},
748760
{
@@ -811,9 +823,14 @@ func TestAPI(t *testing.T) {
811823

812824
logger:=slogtest.Make(t,&slogtest.Options{IgnoreErrors:true}).Leveled(slog.LevelDebug)
813825

826+
mClock:=quartz.NewMock(t)
827+
mClock.Set(time.Now()).MustWait(testutil.Context(t,testutil.WaitShort))
828+
tickerTrap:=mClock.Trap().TickerFunc("updaterLoop")
829+
814830
// Setup router with the handler under test.
815831
r:=chi.NewRouter()
816832
apiOptions:= []agentcontainers.Option{
833+
agentcontainers.WithClock(mClock),
817834
agentcontainers.WithLister(tt.lister),
818835
agentcontainers.WithWatcher(watcher.NewNoop()),
819836
}
@@ -838,6 +855,15 @@ func TestAPI(t *testing.T) {
838855

839856
ctx:=testutil.Context(t,testutil.WaitShort)
840857

858+
// Make sure the ticker function has been registered
859+
// before advancing the clock.
860+
tickerTrap.MustWait(ctx).Release()
861+
tickerTrap.Close()
862+
863+
// Advance the clock to run the updater loop.
864+
_,aw:=mClock.AdvanceNext()
865+
aw.MustWait(ctx)
866+
841867
req:=httptest.NewRequest(http.MethodGet,"/devcontainers",nil).
842868
WithContext(ctx)
843869
rec:=httptest.NewRecorder()

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp