Add parsing tests (#17)

This commit is contained in:
Dave Gallant
2021-01-30 18:38:52 -05:00
committed by GitHub
parent d539a6677a
commit d3c2279555
7 changed files with 158 additions and 5 deletions

View File

@@ -76,6 +76,7 @@ func GetList() (*[]Server, error) {
}
log.Info().Msg("Fetching the latest server list")
r, err := http.Get(vpnList)
if err != nil {

35
pkg/vpn/list_test.go Normal file
View File

@@ -0,0 +1,35 @@
package vpn
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
)
// TestGetListReal tests getting the real list of vpn servers
func TestGetListReal(t *testing.T) {
_, err := GetList()
assert.NoError(t, err)
}
// TestParseVpnList parses a local copy of vpn list csv
func TestParseVpnList(t *testing.T) {
dat, err := os.Open("../../test_data/vpn_list.csv")
assert.NoError(t, err)
servers, err := parseVpnList(dat)
assert.NoError(t, err)
assert.Equal(t, len(*servers), 98)
assert.Equal(t, (*servers)[0].CountryLong, "Japan")
assert.Equal(t, (*servers)[0].CountryShort, "jp")
assert.Equal(t, (*servers)[0].HostName, "public-vpn-227")
assert.Equal(t, (*servers)[0].Ping, "13")
assert.Equal(t, (*servers)[0].Score, 2086924)
}