orchard/pkg/resource/v1/host_dir_test.go

50 lines
1.3 KiB
Go

package v1_test
import (
"fmt"
v1 "github.com/cirruslabs/orchard/pkg/resource/v1"
"github.com/stretchr/testify/require"
"testing"
)
func TestHostDir(t *testing.T) {
hostDir, err := v1.NewHostDirFromString("large-project:/Users/ci/src/www:ro")
require.NoError(t, err)
require.EqualValues(t, v1.HostDir{
Name: "large-project",
Path: "/Users/ci/src/www",
ReadOnly: true,
}, hostDir)
}
func TestHostDirString(t *testing.T) {
require.EqualValues(t, "large-project:/Users/ci/src/www:ro", v1.HostDir{
Name: "large-project",
Path: "/Users/ci/src/www",
ReadOnly: true,
}.String())
}
// TestHostDirWithArchiveURL ensures that Orchard supports "http{,s}://" paths[1].
//
// [1]: https://github.com/cirruslabs/tart/pull/620
func TestHostDirWithArchiveURL(t *testing.T) {
const hostDirRaw = "ghar:https://example.com/archive.tar.gz"
hostDir, err := v1.NewHostDirFromString(hostDirRaw)
require.NoError(t, err)
require.EqualValues(t, v1.HostDir{
Name: "ghar",
Path: "https://example.com/archive.tar.gz",
ReadOnly: false,
}, hostDir)
hostDirReadOnly, err := v1.NewHostDirFromString(fmt.Sprintf("%s:ro", hostDirRaw))
require.NoError(t, err)
require.EqualValues(t, v1.HostDir{
Name: "ghar",
Path: "https://example.com/archive.tar.gz",
ReadOnly: true,
}, hostDirReadOnly)
}