github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/controllers/core/tiltfile/reducers_test.go (about) 1 package tiltfile 2 3 import ( 4 "context" 5 "os" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 10 "github.com/tilt-dev/tilt/internal/store" 11 "github.com/tilt-dev/tilt/pkg/logger" 12 "github.com/tilt-dev/tilt/pkg/model" 13 ) 14 15 // Simulate two tiltfiles adding and removing services, 16 // and make sure the order is reasonable. 17 func TestManifestOrder(t *testing.T) { 18 ctx := logger.WithLogger(context.Background(), logger.NewTestLogger(os.Stdout)) 19 state := store.NewState() 20 21 tfMain := model.MainTiltfileManifestName 22 tfExtra := model.ManifestName("tf-extra") 23 state.TiltfileStates[tfExtra] = &store.ManifestState{ 24 Name: tfExtra, 25 BuildStatuses: make(map[model.TargetID]*store.BuildStatus), 26 } 27 28 HandleConfigsReloaded(ctx, state, ConfigsReloadedAction{ 29 Name: tfMain, 30 Manifests: []model.Manifest{ 31 model.Manifest{Name: "a"}, 32 model.Manifest{Name: "b"}, 33 model.Manifest{Name: "c"}, 34 }, 35 }) 36 assert.Equal(t, 37 []model.ManifestName{"a", "b", "c"}, 38 state.ManifestDefinitionOrder) 39 40 HandleConfigsReloaded(ctx, state, ConfigsReloadedAction{ 41 Name: tfExtra, 42 Manifests: []model.Manifest{ 43 model.Manifest{Name: "extra-x"}, 44 model.Manifest{Name: "extra-y"}, 45 model.Manifest{Name: "extra-z"}, 46 }, 47 }) 48 assert.Equal(t, 49 []model.ManifestName{"a", "b", "c", "extra-x", "extra-y", "extra-z"}, 50 state.ManifestDefinitionOrder) 51 52 HandleConfigsReloaded(ctx, state, ConfigsReloadedAction{ 53 Name: tfMain, 54 Manifests: []model.Manifest{ 55 model.Manifest{Name: "b"}, 56 model.Manifest{Name: "d"}, 57 }, 58 }) 59 assert.Equal(t, 60 []model.ManifestName{"b", "extra-x", "extra-y", "extra-z", "d"}, 61 state.ManifestDefinitionOrder) 62 63 HandleConfigsReloaded(ctx, state, ConfigsReloadedAction{ 64 Name: tfExtra, 65 Manifests: []model.Manifest{ 66 model.Manifest{Name: "extra-x"}, 67 model.Manifest{Name: "extra-omega"}, 68 }, 69 }) 70 assert.Equal(t, 71 []model.ManifestName{"b", "extra-x", "d", "extra-omega"}, 72 state.ManifestDefinitionOrder) 73 74 HandleConfigsReloaded(ctx, state, ConfigsReloadedAction{ 75 Name: tfMain, 76 Manifests: []model.Manifest{ 77 model.Manifest{Name: "a"}, 78 model.Manifest{Name: "b"}, 79 model.Manifest{Name: "c"}, 80 model.Manifest{Name: "d"}, 81 }, 82 }) 83 assert.Equal(t, 84 []model.ManifestName{"b", "extra-x", "d", "extra-omega", "a", "c"}, 85 state.ManifestDefinitionOrder) 86 }