129 lines
2.3 KiB
Go
129 lines
2.3 KiB
Go
package module
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestGet_badSchema(t *testing.T) {
|
|
dst := tempDir(t)
|
|
u := testModule("basic")
|
|
u = strings.Replace(u, "file", "nope", -1)
|
|
|
|
if err := Get(dst, u); err == nil {
|
|
t.Fatal("should error")
|
|
}
|
|
}
|
|
|
|
func TestGet_file(t *testing.T) {
|
|
dst := tempDir(t)
|
|
u := testModule("basic")
|
|
|
|
if err := Get(dst, u); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
mainPath := filepath.Join(dst, "main.tf")
|
|
if _, err := os.Stat(mainPath); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestGet_fileForced(t *testing.T) {
|
|
dst := tempDir(t)
|
|
u := testModule("basic")
|
|
u = "file::" + u
|
|
|
|
if err := Get(dst, u); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
mainPath := filepath.Join(dst, "main.tf")
|
|
if _, err := os.Stat(mainPath); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestGet_fileSubdir(t *testing.T) {
|
|
dst := tempDir(t)
|
|
u := testModule("basic//subdir")
|
|
|
|
if err := Get(dst, u); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
mainPath := filepath.Join(dst, "sub.tf")
|
|
if _, err := os.Stat(mainPath); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestGetCopy_dot(t *testing.T) {
|
|
dst := tempDir(t)
|
|
u := testModule("basic-dot")
|
|
|
|
if err := GetCopy(dst, u); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
mainPath := filepath.Join(dst, "main.tf")
|
|
if _, err := os.Stat(mainPath); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
mainPath = filepath.Join(dst, "foo.tf")
|
|
if _, err := os.Stat(mainPath); err == nil {
|
|
t.Fatal("should not have foo.tf")
|
|
}
|
|
}
|
|
|
|
func TestGetCopy_file(t *testing.T) {
|
|
dst := tempDir(t)
|
|
u := testModule("basic")
|
|
|
|
if err := GetCopy(dst, u); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
mainPath := filepath.Join(dst, "main.tf")
|
|
if _, err := os.Stat(mainPath); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
}
|
|
|
|
func TestGetDirSubdir(t *testing.T) {
|
|
cases := []struct {
|
|
Input string
|
|
Dir, Sub string
|
|
}{
|
|
{
|
|
"hashicorp.com",
|
|
"hashicorp.com", "",
|
|
},
|
|
{
|
|
"hashicorp.com//foo",
|
|
"hashicorp.com", "foo",
|
|
},
|
|
{
|
|
"hashicorp.com//foo?bar=baz",
|
|
"hashicorp.com?bar=baz", "foo",
|
|
},
|
|
{
|
|
"file://foo//bar",
|
|
"file://foo", "bar",
|
|
},
|
|
}
|
|
|
|
for i, tc := range cases {
|
|
adir, asub := getDirSubdir(tc.Input)
|
|
if adir != tc.Dir {
|
|
t.Fatalf("%d: bad dir: %#v", i, adir)
|
|
}
|
|
if asub != tc.Sub {
|
|
t.Fatalf("%d: bad sub: %#v", i, asub)
|
|
}
|
|
}
|
|
}
|