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 }