@@ -79,34 +79,77 @@ func devContainerAgentAPI(t *testing.T, log slog.Logger) (*agentapi.DevContainer
79
79
func TestDevContainerAgentAPI (t * testing.T ) {
80
80
t .Parallel ()
81
81
82
- t .Run ("CanCreateDevContainerAgent " ,func (t * testing.T ) {
82
+ t .Run ("CreateDevContainerAgent " ,func (t * testing.T ) {
83
83
t .Parallel ()
84
84
85
- log := testutil .Logger (t )
86
- ctx := testutil .Context (t ,testutil .WaitShort )
87
- api ,_ := devContainerAgentAPI (t ,log )
88
-
89
- createResp ,err := api .CreateDevContainerAgent (ctx ,& proto.CreateDevContainerAgentRequest {
90
- Name :"some-child-agent" ,
91
- Directory :"/workspaces/wibble" ,
92
- Architecture :"amd64" ,
93
- OperatingSystem :"linux" ,
94
- })
95
- require .NoError (t ,err )
96
-
97
- agentID ,err := uuid .FromBytes (createResp .Id )
98
- require .NoError (t ,err )
99
-
100
- agent ,err := api .Database .GetWorkspaceAgentByID (dbauthz .AsSystemRestricted (ctx ),agentID )//nolint:gocritic // this is a test.
101
- require .NoError (t ,err )
85
+ tests := []struct {
86
+ name string
87
+ agentName string
88
+ agentDir string
89
+ agentArch string
90
+ agentOS string
91
+ shouldErr bool
92
+ }{
93
+ {
94
+ name :"Ok" ,
95
+ agentName :"some-child-agent" ,
96
+ agentDir :"/workspaces/wibble" ,
97
+ agentArch :"amd64" ,
98
+ agentOS :"linux" ,
99
+ },
100
+ {
101
+ name :"NameWithUnderscore" ,
102
+ agentName :"some_child_agent" ,
103
+ agentDir :"/workspaces/wibble" ,
104
+ agentArch :"amd64" ,
105
+ agentOS :"linux" ,
106
+ shouldErr :true ,
107
+ },
108
+ {
109
+ name :"EmptyName" ,
110
+ agentName :"" ,
111
+ agentDir :"/workspaces/wibble" ,
112
+ agentArch :"amd64" ,
113
+ agentOS :"linux" ,
114
+ shouldErr :true ,
115
+ },
116
+ }
102
117
103
- require .Equal (t ,"some-child-agent" ,agent .Name )
104
- require .Equal (t ,"/workspaces/wibble" ,agent .Directory )
105
- require .Equal (t ,"amd64" ,agent .Architecture )
106
- require .Equal (t ,"linux" ,agent .OperatingSystem )
118
+ for _ ,tt := range tests {
119
+ t .Run (tt .name ,func (t * testing.T ) {
120
+ t .Parallel ()
121
+
122
+ log := testutil .Logger (t )
123
+ ctx := testutil .Context (t ,testutil .WaitShort )
124
+ api ,_ := devContainerAgentAPI (t ,log )
125
+
126
+ createResp ,err := api .CreateDevContainerAgent (ctx ,& proto.CreateDevContainerAgentRequest {
127
+ Name :tt .agentName ,
128
+ Directory :tt .agentDir ,
129
+ Architecture :tt .agentArch ,
130
+ OperatingSystem :tt .agentOS ,
131
+ })
132
+ if tt .shouldErr {
133
+ require .Error (t ,err )
134
+ }else {
135
+ require .NoError (t ,err )
136
+
137
+ agentID ,err := uuid .FromBytes (createResp .Id )
138
+ require .NoError (t ,err )
139
+
140
+ agent ,err := api .Database .GetWorkspaceAgentByID (dbauthz .AsSystemRestricted (ctx ),agentID )//nolint:gocritic // this is a test.
141
+ require .NoError (t ,err )
142
+
143
+ require .Equal (t ,tt .agentName ,agent .Name )
144
+ require .Equal (t ,tt .agentDir ,agent .Directory )
145
+ require .Equal (t ,tt .agentArch ,agent .Architecture )
146
+ require .Equal (t ,tt .agentOS ,agent .OperatingSystem )
147
+ }
148
+ })
149
+ }
107
150
})
108
151
109
- t .Run ("CanDeleteDevContainerAgent " ,func (t * testing.T ) {
152
+ t .Run ("DeleteDevContainerAgent " ,func (t * testing.T ) {
110
153
t .Parallel ()
111
154
112
155
log := testutil .Logger (t )
@@ -134,7 +177,7 @@ func TestDevContainerAgentAPI(t *testing.T) {
134
177
require .ErrorIs (t ,err ,sql .ErrNoRows )
135
178
})
136
179
137
- t .Run ("CanDeleteOneDevContainerAgentOfMany " ,func (t * testing.T ) {
180
+ t .Run ("DeleteOneDevContainerAgentOfMany " ,func (t * testing.T ) {
138
181
t .Parallel ()
139
182
140
183
log := testutil .Logger (t )
@@ -174,7 +217,7 @@ func TestDevContainerAgentAPI(t *testing.T) {
174
217
require .NoError (t ,err )
175
218
})
176
219
177
- t .Run ("CanListDevContainerAgents " ,func (t * testing.T ) {
220
+ t .Run ("ListDevContainerAgents " ,func (t * testing.T ) {
178
221
t .Parallel ()
179
222
180
223
log := testutil .Logger (t )