fix: Sort resources by name (#3941)

Fixes #3489.
This commit is contained in:
Kyle Carberry
2022-09-07 22:16:26 -05:00
committed by GitHub
parent 332056af29
commit 519d724ca4
4 changed files with 18 additions and 8 deletions

View File

@ -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)
}

View File

@ -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)
})
}

View File

@ -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)
})
}

View File

@ -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!