Skip to content

Commit e68b7c7

Browse files
committed
Apply review suggestions
1 parent 6352a4a commit e68b7c7

File tree

7 files changed

+55
-11
lines changed

7 files changed

+55
-11
lines changed

coderd/initscript_test.go

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,22 +14,44 @@ import (
1414
func TestInitScript(t *testing.T) {
1515
t.Parallel()
1616

17-
t.Run("OK Windows", func(t *testing.T) {
17+
t.Run("OK Windows amd64", func(t *testing.T) {
1818
t.Parallel()
1919
client := coderdtest.New(t, nil)
2020
script, err := client.InitScript(context.Background(), "windows", "amd64")
2121
require.NoError(t, err)
2222
require.NotEmpty(t, script)
2323
require.Contains(t, script, "$env:CODER_AGENT_AUTH = \"token\"")
24+
require.Contains(t, script, "/bin/coder-windows-amd64.exe")
2425
})
2526

26-
t.Run("OK Linux", func(t *testing.T) {
27+
t.Run("OK Windows arm64", func(t *testing.T) {
28+
t.Parallel()
29+
client := coderdtest.New(t, nil)
30+
script, err := client.InitScript(context.Background(), "windows", "arm64")
31+
require.NoError(t, err)
32+
require.NotEmpty(t, script)
33+
require.Contains(t, script, "$env:CODER_AGENT_AUTH = \"token\"")
34+
require.Contains(t, script, "/bin/coder-windows-arm64.exe")
35+
})
36+
37+
t.Run("OK Linux amd64", func(t *testing.T) {
2738
t.Parallel()
2839
client := coderdtest.New(t, nil)
2940
script, err := client.InitScript(context.Background(), "linux", "amd64")
3041
require.NoError(t, err)
3142
require.NotEmpty(t, script)
3243
require.Contains(t, script, "export CODER_AGENT_AUTH=\"token\"")
44+
require.Contains(t, script, "/bin/coder-linux-amd64")
45+
})
46+
47+
t.Run("OK Linux arm64", func(t *testing.T) {
48+
t.Parallel()
49+
client := coderdtest.New(t, nil)
50+
script, err := client.InitScript(context.Background(), "linux", "arm64")
51+
require.NoError(t, err)
52+
require.NotEmpty(t, script)
53+
require.Contains(t, script, "export CODER_AGENT_AUTH=\"token\"")
54+
require.Contains(t, script, "/bin/coder-linux-arm64")
3355
})
3456

3557
t.Run("BadRequest", func(t *testing.T) {

coderd/searchquery/search.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -223,7 +223,7 @@ func Workspaces(ctx context.Context, db database.Store, query string, page coder
223223
Valid: values.Has("outdated"),
224224
}
225225
filter.HasAITask = parser.NullableBoolean(values, sql.NullBool{}, "has-ai-task")
226-
filter.HasExternalAgent = parser.NullableBoolean(values, sql.NullBool{}, "has-external-agent")
226+
filter.HasExternalAgent = parser.NullableBoolean(values, sql.NullBool{}, "has_external_agent")
227227
filter.OrganizationID = parseOrganization(ctx, db, parser, values, "organization")
228228

229229
type paramMatch struct {
@@ -287,7 +287,7 @@ func Templates(ctx context.Context, db database.Store, actorID uuid.UUID, query
287287
HasAITask: parser.NullableBoolean(values, sql.NullBool{}, "has-ai-task"),
288288
AuthorID: parser.UUID(values, uuid.Nil, "author_id"),
289289
AuthorUsername: parser.String(values, "", "author"),
290-
HasExternalAgent: parser.NullableBoolean(values, sql.NullBool{}, "has-external-agent"),
290+
HasExternalAgent: parser.NullableBoolean(values, sql.NullBool{}, "has_external_agent"),
291291
}
292292

293293
if filter.AuthorUsername == codersdk.Me {

coderd/searchquery/search_test.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ func TestSearchWorkspace(t *testing.T) {
254254
},
255255
{
256256
Name: "HasExternalAgentTrue",
257-
Query: "has-external-agent:true",
257+
Query: "has_external_agent:true",
258258
Expected: database.GetWorkspacesParams{
259259
HasExternalAgent: sql.NullBool{
260260
Bool: true,
@@ -264,7 +264,7 @@ func TestSearchWorkspace(t *testing.T) {
264264
},
265265
{
266266
Name: "HasExternalAgentFalse",
267-
Query: "has-external-agent:false",
267+
Query: "has_external_agent:false",
268268
Expected: database.GetWorkspacesParams{
269269
HasExternalAgent: sql.NullBool{
270270
Bool: false,
@@ -721,7 +721,7 @@ func TestSearchTemplates(t *testing.T) {
721721
},
722722
{
723723
Name: "HasExternalAgent",
724-
Query: "has-external-agent:true",
724+
Query: "has_external_agent:true",
725725
Expected: database.GetTemplatesWithFilterParams{
726726
HasExternalAgent: sql.NullBool{
727727
Bool: true,
@@ -731,7 +731,7 @@ func TestSearchTemplates(t *testing.T) {
731731
},
732732
{
733733
Name: "HasExternalAgentFalse",
734-
Query: "has-external-agent:false",
734+
Query: "has_external_agent:false",
735735
Expected: database.GetTemplatesWithFilterParams{
736736
HasExternalAgent: sql.NullBool{
737737
Bool: false,

coderd/templates_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1958,14 +1958,14 @@ func TestTemplateFilterHasExternalAgent(t *testing.T) {
19581958
defer cancel()
19591959

19601960
templates, err := client.Templates(ctx, codersdk.TemplateFilter{
1961-
SearchQuery: "has-external-agent:true",
1961+
SearchQuery: "has_external_agent:true",
19621962
})
19631963
require.NoError(t, err)
19641964
require.Len(t, templates, 1)
19651965
require.Equal(t, templateWithExternalAgent.ID, templates[0].ID)
19661966

19671967
templates, err = client.Templates(ctx, codersdk.TemplateFilter{
1968-
SearchQuery: "has-external-agent:false",
1968+
SearchQuery: "has_external_agent:false",
19691969
})
19701970
require.NoError(t, err)
19711971
require.Len(t, templates, 1)

coderd/workspaces.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func (api *API) workspace(rw http.ResponseWriter, r *http.Request) {
138138
// @Security CoderSessionToken
139139
// @Produce json
140140
// @Tags Workspaces
141-
// @Param q query string false "Search query in the format `key:value`. Available keys are: owner, template, name, status, has-agent, dormant, last_used_after, last_used_before, has-ai-task, has-external-agent."
141+
// @Param q query string false "Search query in the format `key:value`. Available keys are: owner, template, name, status, has-agent, dormant, last_used_after, last_used_before, has-ai-task, has_external_agent."
142142
// @Param limit query int false "Page limit"
143143
// @Param offset query int false "Page offset"
144144
// @Success 200 {object} codersdk.WorkspacesResponse

enterprise/coderd/workspaceagents.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,12 @@ func (api *API) workspaceExternalAgentCredentials(rw http.ResponseWriter, r *htt
4545
})
4646
return
4747
}
48+
if !build.HasExternalAgent.Bool {
49+
httpapi.Write(ctx, rw, http.StatusNotFound, codersdk.Response{
50+
Message: "Workspace does not have an external agent.",
51+
})
52+
return
53+
}
4854

4955
agents, err := api.Database.GetWorkspaceAgentsByWorkspaceAndBuildNumber(ctx, database.GetWorkspaceAgentsByWorkspaceAndBuildNumberParams{
5056
WorkspaceID: workspace.ID,

enterprise/coderd/workspaceagents_test.go

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,4 +424,20 @@ func TestWorkspaceExternalAgentCredentials(t *testing.T) {
424424
require.ErrorAs(t, err, &apiErr)
425425
require.Equal(t, "External agent is authenticated with an instance ID.", apiErr.Message)
426426
})
427+
428+
t.Run("No external agent - should return 404", func(t *testing.T) {
429+
t.Parallel()
430+
ctx := testutil.Context(t, testutil.WaitShort)
431+
432+
r := dbfake.WorkspaceBuild(t, db, database.WorkspaceTable{
433+
OrganizationID: user.OrganizationID,
434+
OwnerID: user.UserID,
435+
}).Do()
436+
437+
_, err := client.WorkspaceExternalAgentCredentials(ctx, r.Workspace.ID, "test-agent")
438+
require.Error(t, err)
439+
var apiErr *codersdk.Error
440+
require.ErrorAs(t, err, &apiErr)
441+
require.Equal(t, "Workspace does not have an external agent.", apiErr.Message)
442+
})
427443
}

0 commit comments

Comments
 (0)