github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/cli/create_cmd_test.go (about)

     1  package cli
     2  
     3  import (
     4  	"bytes"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/stretchr/testify/assert"
     9  	"github.com/stretchr/testify/require"
    10  	"k8s.io/apimachinery/pkg/types"
    11  	"k8s.io/cli-runtime/pkg/genericclioptions"
    12  
    13  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
    14  )
    15  
    16  func TestCreateCmd(t *testing.T) {
    17  	f := newServerFixture(t)
    18  
    19  	out := bytes.NewBuffer(nil)
    20  
    21  	streams := genericclioptions.IOStreams{Out: out}
    22  	cmd := newCreateCmdCmd(streams)
    23  	c := cmd.register()
    24  	err := c.Flags().Parse([]string{
    25  		"--env", "COLOR=1",
    26  		"-e", "USER=nick",
    27  		"my-cmd", "echo", "hello", "world",
    28  	})
    29  	require.NoError(t, err)
    30  
    31  	err = cmd.run(f.ctx, c.Flags().Args())
    32  	require.NoError(t, err)
    33  	assert.Contains(t, out.String(), `cmd.tilt.dev/my-cmd created`)
    34  
    35  	var myCmd v1alpha1.Cmd
    36  	err = f.client.Get(f.ctx, types.NamespacedName{Name: "my-cmd"}, &myCmd)
    37  	require.NoError(t, err)
    38  
    39  	cwd, _ := os.Getwd()
    40  	assert.Equal(t, cwd, myCmd.Spec.Dir)
    41  	assert.Equal(t, []string{"echo", "hello", "world"}, myCmd.Spec.Args)
    42  	assert.Equal(t, []string{"COLOR=1", "USER=nick"}, myCmd.Spec.Env)
    43  }