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

     1  package store
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  
     9  	"github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1"
    10  	"github.com/tilt-dev/tilt/pkg/model"
    11  )
    12  
    13  func TestLocalTargetUpdateStatus(t *testing.T) {
    14  	m := model.Manifest{Name: "serve-cmd"}.WithDeployTarget(
    15  		model.NewLocalTarget("serve-cmd", model.Cmd{}, model.ToHostCmd("busybox httpd"), nil))
    16  	mt := NewManifestTarget(m)
    17  	assert.Equal(t, v1alpha1.UpdateStatusPending, mt.UpdateStatus())
    18  	assert.Equal(t, v1alpha1.RuntimeStatusPending, mt.RuntimeStatus())
    19  
    20  	mt.State.CurrentBuilds["buildcontrol"] = model.BuildRecord{StartTime: time.Now()}
    21  	assert.Equal(t, v1alpha1.UpdateStatusPending, mt.UpdateStatus())
    22  	assert.Equal(t, v1alpha1.RuntimeStatusPending, mt.RuntimeStatus())
    23  
    24  	delete(mt.State.CurrentBuilds, "buildcontrol")
    25  	mt.State.AddCompletedBuild(model.BuildRecord{StartTime: time.Now(), FinishTime: time.Now()})
    26  	assert.Equal(t, v1alpha1.UpdateStatusNotApplicable, mt.UpdateStatus())
    27  
    28  	// We currently have an unknown runtime state when the build completes,
    29  	// but we haven't received any data from the runtime yet.
    30  	assert.Equal(t, v1alpha1.RuntimeStatusUnknown, mt.RuntimeStatus())
    31  
    32  	mt.State.TriggerReason = model.BuildReasonFlagTriggerWeb
    33  	assert.Equal(t, v1alpha1.UpdateStatusPending, mt.UpdateStatus())
    34  	assert.Equal(t, v1alpha1.RuntimeStatusPending, mt.RuntimeStatus())
    35  }
    36  
    37  func TestK8sRuntimeStatus(t *testing.T) {
    38  	m := model.Manifest{Name: "k8s"}.WithDeployTarget(model.NewK8sTargetForTesting(""))
    39  	mt := NewManifestTarget(m)
    40  	assert.Equal(t, v1alpha1.UpdateStatusPending, mt.UpdateStatus())
    41  	assert.Equal(t, v1alpha1.RuntimeStatusPending, mt.RuntimeStatus())
    42  
    43  	mt.Manifest.TriggerMode = model.TriggerModeManual
    44  	assert.Equal(t, v1alpha1.UpdateStatusNone, mt.UpdateStatus())
    45  	assert.Equal(t, v1alpha1.RuntimeStatusNone, mt.RuntimeStatus())
    46  }