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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy