//nolint:testpackage // white-box tests exercise unexported internals package mfer import ( "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestBaseURLJoinPath(t *testing.T) { t.Parallel() tests := []struct { base BaseURL path RelFilePath expected string }{ {"https://example.com/dir/", testFileName, "https://example.com/dir/file.txt"}, {"https://example.com/dir", testFileName, "https://example.com/dir/file.txt"}, {"https://example.com/", "sub/file.txt", "https://example.com/sub/file.txt"}, { "https://example.com/dir/", "file with spaces.txt", "https://example.com/dir/file%20with%20spaces.txt", }, } for _, tt := range tests { t.Run(string(tt.base)+"+"+string(tt.path), func(t *testing.T) { t.Parallel() result, err := tt.base.JoinPath(tt.path) require.NoError(t, err) assert.Equal(t, tt.expected, string(result)) }) } } func TestBaseURLString(t *testing.T) { t.Parallel() b := BaseURL("https://example.com/") assert.Equal(t, "https://example.com/", b.String()) } func TestFileURLString(t *testing.T) { t.Parallel() f := FileURL("https://example.com/file.txt") assert.Equal(t, "https://example.com/file.txt", f.String()) } func TestManifestURLString(t *testing.T) { t.Parallel() m := ManifestURL("https://example.com/index.mf") assert.Equal(t, "https://example.com/index.mf", m.String()) }