chore(storage): common sorting for all servers

This commit is contained in:
Quentin McGaw
2022-06-06 01:57:44 +00:00
parent f53f0cfffd
commit 1216326867
48 changed files with 1319 additions and 1795 deletions

View File

@@ -6,6 +6,7 @@ import (
"context"
"errors"
"fmt"
"sort"
"github.com/qdm12/gluetun/internal/constants/vpn"
"github.com/qdm12/gluetun/internal/models"
@@ -55,7 +56,7 @@ func (u *Updater) GetServers(ctx context.Context, minServers int) (
servers = append(servers, server)
}
sortServers(servers)
sort.Sort(models.SortableServers(servers))
return servers, nil
}

View File

@@ -1,16 +0,0 @@
package wevpn
import (
"sort"
"github.com/qdm12/gluetun/internal/models"
)
func sortServers(servers []models.Server) {
sort.Slice(servers, func(i, j int) bool {
if servers[i].City == servers[j].City {
return servers[i].Hostname < servers[j].Hostname
}
return servers[i].City < servers[j].City
})
}

View File

@@ -1,40 +0,0 @@
package wevpn
import (
"testing"
"github.com/qdm12/gluetun/internal/models"
"github.com/stretchr/testify/assert"
)
func Test_sortServers(t *testing.T) {
t.Parallel()
testCases := map[string]struct {
initialServers []models.Server
sortedServers []models.Server
}{
"no server": {},
"sorted servers": {
initialServers: []models.Server{
{City: "A", Hostname: "A"},
{City: "A", Hostname: "B"},
{City: "A", Hostname: "A"},
{City: "B", Hostname: "A"},
},
sortedServers: []models.Server{
{City: "A", Hostname: "A"},
{City: "A", Hostname: "A"},
{City: "A", Hostname: "B"},
{City: "B", Hostname: "A"},
},
},
}
for name, testCase := range testCases {
testCase := testCase
t.Run(name, func(t *testing.T) {
t.Parallel()
sortServers(testCase.initialServers)
assert.Equal(t, testCase.sortedServers, testCase.initialServers)
})
}
}