github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/cli/patch_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 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 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 TestPatch(t *testing.T) { 17 f := newServerFixture(t) 18 19 err := f.client.Create(f.ctx, &v1alpha1.Cmd{ 20 ObjectMeta: metav1.ObjectMeta{Name: "my-sleep"}, 21 Spec: v1alpha1.CmdSpec{ 22 Args: []string{"sleep", "1"}, 23 }, 24 }) 25 require.NoError(t, err) 26 27 out := bytes.NewBuffer(nil) 28 streams := genericclioptions.IOStreams{Out: out} 29 30 cmd := newPatchCmd(streams) 31 c := cmd.register() 32 err = c.Flags().Parse([]string{"-p", `{"spec": {"dir": "/tmp"}}`}) 33 require.NoError(t, err) 34 35 err = cmd.run(f.ctx, []string{"cmd", "my-sleep"}) 36 require.NoError(t, err) 37 assert.Contains(t, out.String(), `cmd.tilt.dev/my-sleep patched`) 38 39 var sleep v1alpha1.Cmd 40 err = f.client.Get(f.ctx, types.NamespacedName{Name: "my-sleep"}, &sleep) 41 require.NoError(t, err) 42 assert.Equal(t, "/tmp", sleep.Spec.Dir) 43 }