github.com/trawler/terraform@v0.10.8-0.20171106022149-4b1c7a1d9b48/config/module/storage_test.go (about) 1 package module 2 3 import ( 4 "io/ioutil" 5 "os" 6 "path/filepath" 7 "testing" 8 ) 9 10 func TestGetModule(t *testing.T) { 11 server := mockRegistry() 12 defer server.Close() 13 disco := testDisco(server) 14 15 td, err := ioutil.TempDir("", "tf") 16 if err != nil { 17 t.Fatal(err) 18 } 19 defer os.RemoveAll(td) 20 storage := NewStorage(td, disco, nil) 21 22 // this module exists in a test fixture, and is known by the mockRegistry 23 // relative to our cwd. 24 err = storage.GetModule(filepath.Join(td, "foo"), "registry/local/sub") 25 if err != nil { 26 t.Fatal(err) 27 } 28 29 // list everything to make sure nothing else got unpacked in here 30 ls, err := ioutil.ReadDir(td) 31 if err != nil { 32 t.Fatal(err) 33 } 34 35 var names []string 36 for _, info := range ls { 37 names = append(names, info.Name()) 38 } 39 40 if !(len(names) == 1 && names[0] == "foo") { 41 t.Fatalf("expected only directory 'foo', found entries %q", names) 42 } 43 44 _, err = os.Stat(filepath.Join(td, "foo", "main.tf")) 45 if err != nil { 46 t.Fatal(err) 47 } 48 49 }