github.com/thriqon/involucro@v1.1.3/integrationtest/15_nested_dirs_test.go (about)

     1  package integrationtest
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/fsouza/go-dockerclient"
    10  	"github.com/involucro/involucro/app"
    11  )
    12  
    13  func TestWrapNestedDirsCorrectly(t *testing.T) {
    14  	if testing.Short() {
    15  		t.SkipNow()
    16  	}
    17  	dir, err := ioutil.TempDir("", "inttest-15")
    18  	if err != nil {
    19  		t.Fatal(err)
    20  	}
    21  	defer os.RemoveAll(dir)
    22  
    23  	nestedPath := filepath.Join(dir, "asd", "p", "aaa")
    24  	if err := os.MkdirAll(nestedPath, 0755); err != nil {
    25  		t.Fatal(err)
    26  	}
    27  
    28  	if err := ioutil.WriteFile(filepath.Join(nestedPath, "a"), []byte("123"), 0755); err != nil {
    29  		t.Fatal(err)
    30  	}
    31  	if err := ioutil.WriteFile(filepath.Join(nestedPath, "b"), []byte("456"), 0755); err != nil {
    32  		t.Fatal(err)
    33  	}
    34  
    35  	c, err := docker.NewClientFromEnv()
    36  	if err != nil {
    37  		t.Fatal(err)
    38  	}
    39  	defer func() {
    40  		c.RemoveImage("inttest/15")
    41  	}()
    42  
    43  	if err := app.Main([]string{
    44  		"involucro",
    45  		"-e",
    46  		"inv.task('wrap').wrap('.').inImage('busybox').at('/data').as('inttest/15')",
    47  		"-w", dir,
    48  		"wrap",
    49  	}); err != nil {
    50  		t.Fatal(err)
    51  	}
    52  
    53  	if err := app.Main([]string{
    54  		"involucro",
    55  		"-e",
    56  		"inv.task('x').using('inttest/15').run('grep', '123', '/data/asd/p/aaa/a').run('grep', '456', '/data/asd/p/aaa/b')",
    57  		"x",
    58  	}); err != nil {
    59  		t.Error(err)
    60  	}
    61  }