github.com/winebarrel/terraform-provider-lambdazip@v0.6.1-0.20240313233639-361839f8c5c5/internal/cmd/run_test.go (about)

     1  package cmd_test
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  	"github.com/winebarrel/terraform-provider-lambdazip/internal/cmd"
    10  )
    11  
    12  func TestRun_OK(t *testing.T) {
    13  	assert := assert.New(t)
    14  	require := require.New(t)
    15  
    16  	cwd, _ := os.Getwd()
    17  	os.Chdir(t.TempDir())
    18  	defer os.Chdir(cwd)
    19  
    20  	os.WriteFile("hello.rb", []byte("puts 'world'"), 0755)
    21  	os.WriteFile("world.rb", []byte("puts 'hello'"), 0755)
    22  
    23  	out, err := cmd.Run("ls ./")
    24  	require.NoError(err)
    25  	assert.Equal(`hello.rb
    26  world.rb
    27  `, out)
    28  }
    29  
    30  func TestRun_Err(t *testing.T) {
    31  	assert := assert.New(t)
    32  	require := require.New(t)
    33  
    34  	cwd, _ := os.Getwd()
    35  	os.Chdir(t.TempDir())
    36  	defer os.Chdir(cwd)
    37  
    38  	os.WriteFile("hello.rb", []byte("puts 'world'"), 0755)
    39  	os.WriteFile("world.rb", []byte("puts 'hello'"), 0755)
    40  
    41  	out, err := cmd.Run("ls /not/exist")
    42  	require.Error(err)
    43  	assert.NotEmpty(out)
    44  }
    45  
    46  func TestRun_WithEnv(t *testing.T) {
    47  	assert := assert.New(t)
    48  	require := require.New(t)
    49  
    50  	cwd, _ := os.Getwd()
    51  	os.Chdir(t.TempDir())
    52  	defer os.Chdir(cwd)
    53  
    54  	out, err := cmd.Run("FOO=bar ZOO=baz sh -c 'echo $FOO $ZOO'")
    55  	require.NoError(err)
    56  	assert.Equal("bar baz\n", out)
    57  }