@@ -1397,14 +1397,15 @@ func TestWorkspaceAgentRecreateDevcontainer(t *testing.T) {
1397
1397
agentcontainers .DevcontainerConfigFileLabel :configFile ,
1398
1398
}
1399
1399
devContainer = codersdk.WorkspaceAgentContainer {
1400
- ID :uuid .NewString (),
1401
- CreatedAt :dbtime .Now (),
1402
- FriendlyName :testutil .GetRandomName (t ),
1403
- Image :"busybox:latest" ,
1404
- Labels :dcLabels ,
1405
- Running :true ,
1406
- Status :"running" ,
1407
- DevcontainerDirty :true ,
1400
+ ID :uuid .NewString (),
1401
+ CreatedAt :dbtime .Now (),
1402
+ FriendlyName :testutil .GetRandomName (t ),
1403
+ Image :"busybox:latest" ,
1404
+ Labels :dcLabels ,
1405
+ Running :true ,
1406
+ Status :"running" ,
1407
+ DevcontainerDirty :true ,
1408
+ DevcontainerStatus :codersdk .WorkspaceAgentDevcontainerStatusRunning ,
1408
1409
}
1409
1410
plainContainer = codersdk.WorkspaceAgentContainer {
1410
1411
ID :uuid .NewString (),
@@ -1419,29 +1420,31 @@ func TestWorkspaceAgentRecreateDevcontainer(t *testing.T) {
1419
1420
1420
1421
for _ ,tc := range []struct {
1421
1422
name string
1422
- setupMock func (* acmock.MockContainerCLI ,* acmock.MockDevcontainerCLI ) (status int )
1423
+ setupMock func (mccli * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI ) (status int )
1423
1424
}{
1424
1425
{
1425
1426
name :"Recreate" ,
1426
- setupMock :func (mcl * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI )int {
1427
- mcl .EXPECT ().List (gomock .Any ()).Return (codersdk.WorkspaceAgentListContainersResponse {
1427
+ setupMock :func (mccli * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI )int {
1428
+ mccli .EXPECT ().List (gomock .Any ()).Return (codersdk.WorkspaceAgentListContainersResponse {
1428
1429
Containers : []codersdk.WorkspaceAgentContainer {devContainer },
1429
1430
},nil ).AnyTimes ()
1431
+ // DetectArchitecture always returns "<none>" for this test to disable agent injection.
1432
+ mccli .EXPECT ().DetectArchitecture (gomock .Any (),devContainer .ID ).Return ("<none>" ,nil ).AnyTimes ()
1430
1433
mdccli .EXPECT ().Up (gomock .Any (),workspaceFolder ,configFile ,gomock .Any ()).Return ("someid" ,nil ).Times (1 )
1431
1434
return 0
1432
1435
},
1433
1436
},
1434
1437
{
1435
1438
name :"Container does not exist" ,
1436
- setupMock :func (mcl * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI )int {
1437
- mcl .EXPECT ().List (gomock .Any ()).Return (codersdk.WorkspaceAgentListContainersResponse {},nil ).AnyTimes ()
1439
+ setupMock :func (mccli * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI )int {
1440
+ mccli .EXPECT ().List (gomock .Any ()).Return (codersdk.WorkspaceAgentListContainersResponse {},nil ).AnyTimes ()
1438
1441
return http .StatusNotFound
1439
1442
},
1440
1443
},
1441
1444
{
1442
1445
name :"Not a devcontainer" ,
1443
- setupMock :func (mcl * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI )int {
1444
- mcl .EXPECT ().List (gomock .Any ()).Return (codersdk.WorkspaceAgentListContainersResponse {
1446
+ setupMock :func (mccli * acmock.MockContainerCLI ,mdccli * acmock.MockDevcontainerCLI )int {
1447
+ mccli .EXPECT ().List (gomock .Any ()).Return (codersdk.WorkspaceAgentListContainersResponse {
1445
1448
Containers : []codersdk.WorkspaceAgentContainer {plainContainer },
1446
1449
},nil ).AnyTimes ()
1447
1450
return http .StatusNotFound
@@ -1452,9 +1455,9 @@ func TestWorkspaceAgentRecreateDevcontainer(t *testing.T) {
1452
1455
t .Parallel ()
1453
1456
1454
1457
ctrl := gomock .NewController (t )
1455
- mcl := acmock .NewMockContainerCLI (ctrl )
1458
+ mccli := acmock .NewMockContainerCLI (ctrl )
1456
1459
mdccli := acmock .NewMockDevcontainerCLI (ctrl )
1457
- wantStatus := tc .setupMock (mcl ,mdccli )
1460
+ wantStatus := tc .setupMock (mccli ,mdccli )
1458
1461
logger := slogtest .Make (t ,& slogtest.Options {IgnoreErrors :true }).Leveled (slog .LevelDebug )
1459
1462
client ,db := coderdtest .NewWithDatabase (t ,& coderdtest.Options {
1460
1463
Logger :& logger ,
@@ -1471,7 +1474,7 @@ func TestWorkspaceAgentRecreateDevcontainer(t *testing.T) {
1471
1474
o .ExperimentalDevcontainersEnabled = true
1472
1475
o .ContainerAPIOptions = append (
1473
1476
o .ContainerAPIOptions ,
1474
- agentcontainers .WithContainerCLI (mcl ),
1477
+ agentcontainers .WithContainerCLI (mccli ),
1475
1478
agentcontainers .WithDevcontainerCLI (mdccli ),
1476
1479
agentcontainers .WithWatcher (watcher .NewNoop ()),
1477
1480
)