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  }