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

     1  package cli
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	"github.com/stretchr/testify/require"
     9  	"k8s.io/apimachinery/pkg/types"
    10  	"k8s.io/cli-runtime/pkg/genericclioptions"
    11  
    12  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
    13  )
    14  
    15  func TestCreate(t *testing.T) {
    16  	f := newServerFixture(t)
    17  
    18  	f.WriteFile("sleep.yaml", `
    19  apiVersion: tilt.dev/v1alpha1
    20  kind: Cmd
    21  metadata:
    22    name: my-sleep
    23  spec:
    24    args: ["sleep", "1"]
    25  `)
    26  	out := bytes.NewBuffer(nil)
    27  	streams := genericclioptions.IOStreams{Out: out}
    28  
    29  	cmd := newCreateCmd(streams)
    30  	c := cmd.register()
    31  	err := c.Flags().Parse([]string{"-f", f.JoinPath("sleep.yaml")})
    32  	require.NoError(t, err)
    33  
    34  	err = cmd.run(f.ctx, nil)
    35  	require.NoError(t, err)
    36  	assert.Contains(t, out.String(), `cmd.tilt.dev/my-sleep created`)
    37  
    38  	var sleep v1alpha1.Cmd
    39  	err = f.client.Get(f.ctx, types.NamespacedName{Name: "my-sleep"}, &sleep)
    40  	require.NoError(t, err)
    41  	assert.Equal(t, []string{"sleep", "1"}, sleep.Spec.Args)
    42  }