influx-cli/pkg/github/normalize_test.go
2021-08-20 15:26:00 -04:00

54 lines
1.4 KiB
Go

package github_test
import (
"net/url"
"testing"
"github.com/influxdata/influx-cli/v2/pkg/github"
"github.com/stretchr/testify/require"
)
func TestNormalize(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
in url.URL
exts []string
out url.URL
}{
{
name: "github URL",
in: url.URL{Host: "github.com", Path: "/influxdata/influxdb/blob/master/flags.yml"},
out: url.URL{Host: "raw.githubusercontent.com", Path: "/influxdata/influxdb/master/flags.yml"},
},
{
name: "github URL with extensions",
in: url.URL{Host: "github.com", Path: "/influxdata/community-templates/blob/master/github/github.yml"},
exts: []string{".yaml", ".yml", ".jsonnet", ".json"},
out: url.URL{Host: "raw.githubusercontent.com", Path: "/influxdata/community-templates/master/github/github.yml"},
},
{
name: "other URL",
in: url.URL{Host: "google.com", Path: "/fake.yml"},
out: url.URL{Host: "google.com", Path: "/fake.yml"},
},
{
name: "github URL - wrong extension",
in: url.URL{Host: "github.com", Path: "/influxdata/influxdb/blob/master/flags.yml"},
exts: []string{".json"},
out: url.URL{Host: "github.com", Path: "/influxdata/influxdb/blob/master/flags.yml"},
},
}
for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()
normalized := github.NormalizeURLToContent(&tc.in, tc.exts...)
require.Equal(t, tc.out, *normalized)
})
}
}