github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/engine/configs/trigger_queue_subscriber_test.go (about) 1 package configs 2 3 import ( 4 "context" 5 "testing" 6 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 "k8s.io/apimachinery/pkg/types" 10 11 "github.com/tilt-dev/tilt/internal/controllers/apis/configmap" 12 "github.com/tilt-dev/tilt/internal/controllers/fake" 13 "github.com/tilt-dev/tilt/internal/store" 14 "github.com/tilt-dev/tilt/pkg/model" 15 ) 16 17 func TestTriggerQueue(t *testing.T) { 18 st := store.NewTestingStore() 19 st.WithState(func(s *store.EngineState) { 20 s.UpsertManifestTarget(store.NewManifestTarget(model.Manifest{Name: "a"})) 21 s.UpsertManifestTarget(store.NewManifestTarget(model.Manifest{Name: "b"})) 22 s.UpsertManifestTarget(store.NewManifestTarget(model.Manifest{Name: "c"})) 23 s.AppendToTriggerQueue("a", model.BuildReasonFlagTriggerCLI) 24 s.AppendToTriggerQueue("b", model.BuildReasonFlagTriggerWeb) 25 }) 26 27 ctx := context.Background() 28 client := fake.NewFakeTiltClient() 29 cm, err := configmap.TriggerQueue(ctx, client) 30 require.NoError(t, err) 31 32 nnA := types.NamespacedName{Name: "a"} 33 nnB := types.NamespacedName{Name: "b"} 34 nnC := types.NamespacedName{Name: "c"} 35 assert.False(t, configmap.InTriggerQueue(cm, nnA)) 36 37 tqs := NewTriggerQueueSubscriber(client) 38 require.NoError(t, tqs.OnChange(ctx, st, store.ChangeSummary{})) 39 40 cm, err = configmap.TriggerQueue(ctx, client) 41 require.NoError(t, err) 42 43 assert.True(t, configmap.InTriggerQueue(cm, nnA)) 44 assert.True(t, configmap.InTriggerQueue(cm, nnB)) 45 assert.False(t, configmap.InTriggerQueue(cm, nnC)) 46 47 assert.Equal(t, model.BuildReasonFlagTriggerCLI, configmap.TriggerQueueReason(cm, nnA)) 48 assert.Equal(t, model.BuildReasonFlagTriggerWeb, configmap.TriggerQueueReason(cm, nnB)) 49 assert.Equal(t, model.BuildReasonNone, configmap.TriggerQueueReason(cm, nnC)) 50 }