diff --git a/coderd/provisionerjobs.go b/coderd/provisionerjobs.go index 19e802fc35..fdaf271c7e 100644 --- a/coderd/provisionerjobs.go +++ b/coderd/provisionerjobs.go @@ -7,6 +7,7 @@ import ( "errors" "fmt" "net/http" + "sort" "strconv" "time" @@ -282,6 +283,9 @@ func (api *API) provisionerJobResources(rw http.ResponseWriter, r *http.Request, } apiResources = append(apiResources, convertWorkspaceResource(resource, agents, metadata)) } + sort.Slice(apiResources, func(i, j int) bool { + return apiResources[i].Name < apiResources[j].Name + }) httpapi.Write(rw, http.StatusOK, apiResources) } diff --git a/coderd/templateversions_test.go b/coderd/templateversions_test.go index f6a423f127..af4678510e 100644 --- a/coderd/templateversions_test.go +++ b/coderd/templateversions_test.go @@ -396,9 +396,9 @@ func TestTemplateVersionResources(t *testing.T) { require.NoError(t, err) require.NotNil(t, resources) require.Len(t, resources, 4) - require.Equal(t, "some", resources[0].Name) - require.Equal(t, "example", resources[0].Type) - require.Len(t, resources[0].Agents, 1) + require.Equal(t, "some", resources[2].Name) + require.Equal(t, "example", resources[2].Type) + require.Len(t, resources[2].Agents, 1) }) } diff --git a/coderd/workspacebuilds_test.go b/coderd/workspacebuilds_test.go index 5ded39bf91..a771ef4de8 100644 --- a/coderd/workspacebuilds_test.go +++ b/coderd/workspacebuilds_test.go @@ -416,9 +416,9 @@ func TestWorkspaceBuildResources(t *testing.T) { require.NoError(t, err) require.NotNil(t, resources) require.Len(t, resources, 2) - require.Equal(t, "some", resources[0].Name) - require.Equal(t, "example", resources[0].Type) - require.Len(t, resources[0].Agents, 1) + require.Equal(t, "some", resources[1].Name) + require.Equal(t, "example", resources[1].Type) + require.Len(t, resources[1].Agents, 1) }) } diff --git a/coderd/workspaceresources_test.go b/coderd/workspaceresources_test.go index ffb3d10aee..c106c3c4ef 100644 --- a/coderd/workspaceresources_test.go +++ b/coderd/workspaceresources_test.go @@ -25,7 +25,7 @@ func TestWorkspaceResource(t *testing.T) { Type: &proto.Provision_Response_Complete{ Complete: &proto.Provision_Complete{ Resources: []*proto.Resource{{ - Name: "some", + Name: "beta", Type: "example", Agents: []*proto.Agent{{ Id: "something", @@ -36,6 +36,9 @@ func TestWorkspaceResource(t *testing.T) { Name: "a", Auth: &proto.Agent_Token{}, }}, + }, { + Name: "alpha", + Type: "example", }}, }, }, @@ -51,7 +54,10 @@ func TestWorkspaceResource(t *testing.T) { resources, err := client.WorkspaceResourcesByBuild(ctx, workspace.LatestBuild.ID) require.NoError(t, err) - resource, err := client.WorkspaceResource(ctx, resources[0].ID) + // Ensure it's sorted alphabetically! + require.Equal(t, "alpha", resources[0].Name) + require.Equal(t, "beta", resources[1].Name) + resource, err := client.WorkspaceResource(ctx, resources[1].ID) require.NoError(t, err) require.Len(t, resource.Agents, 2) // Ensure it's sorted alphabetically!