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 }