Files
upstream-golang-migrate/internal/url/url_test.go
upstream-mirror 9f3bffc2d3
Some checks failed
CI / test (1.26.x) (push) Failing after 5s
CI / Check coverage (push) Has been skipped
CI / lint (push) Failing after 41s
CI / test (1.25.x) (push) Failing after 54s
CI / Release a new version (push) Has been skipped
snapshot of https://github.com/golang-migrate/migrate.git (master, 2026-09-15; blobs > 131072B omitted)
2026-09-15 21:52:57 +05:00

49 lines
866 B
Go

package url
import (
"testing"
)
func TestSchemeFromUrl(t *testing.T) {
cases := []struct {
name string
urlStr string
expected string
expectErr error
}{
{
name: "Simple",
urlStr: "protocol://path",
expected: "protocol",
},
{
// See issue #264
name: "MySQLWithPort",
urlStr: "mysql://user:pass@tcp(host:1337)/db",
expected: "mysql",
},
{
name: "Empty",
urlStr: "",
expectErr: errEmptyURL,
},
{
name: "NoScheme",
urlStr: "hello",
expectErr: errNoScheme,
},
}
for _, tc := range cases {
t.Run(tc.name, func(t *testing.T) {
s, err := SchemeFromURL(tc.urlStr)
if err != tc.expectErr {
t.Fatalf("expected %q, but received %q", tc.expectErr, err)
}
if s != tc.expected {
t.Fatalf("expected %q, but received %q", tc.expected, s)
}
})
}
}