github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/cli/wait_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/cli-runtime/pkg/genericclioptions"
    11  
    12  	"github.com/tilt-dev/tilt/pkg/apis"
    13  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
    14  )
    15  
    16  func TestWait(t *testing.T) {
    17  	f := newServerFixture(t)
    18  
    19  	err := f.client.Create(f.ctx, &v1alpha1.UIResource{
    20  		ObjectMeta: metav1.ObjectMeta{Name: "my-sleep"},
    21  		Status: v1alpha1.UIResourceStatus{
    22  			Conditions: []v1alpha1.UIResourceCondition{
    23  				{
    24  					Type:               v1alpha1.UIResourceReady,
    25  					Status:             metav1.ConditionTrue,
    26  					LastTransitionTime: apis.NowMicro(),
    27  				},
    28  			},
    29  		},
    30  	})
    31  	require.NoError(t, err)
    32  
    33  	out := bytes.NewBuffer(nil)
    34  	streams := genericclioptions.IOStreams{Out: out}
    35  	wait := newWaitCmd(streams)
    36  	cmd := wait.register()
    37  
    38  	err = cmd.Flags().Parse([]string{"--for=condition=Ready"})
    39  	require.NoError(t, err)
    40  
    41  	err = wait.run(f.ctx, []string{"uiresource/my-sleep"})
    42  	require.NoError(t, err)
    43  
    44  	assert.Contains(t, out.String(), `uiresource.tilt.dev/my-sleep condition met`)
    45  }