github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/store/uiresources/reducers_test.go (about) 1 package uiresources 2 3 import ( 4 "strings" 5 "testing" 6 7 "github.com/stretchr/testify/require" 8 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 9 10 "github.com/tilt-dev/tilt/internal/store" 11 "github.com/tilt-dev/tilt/pkg/apis/core/v1alpha1" 12 ) 13 14 func resourceWithDisableState(state v1alpha1.DisableState) *v1alpha1.UIResource { 15 return &v1alpha1.UIResource{ 16 ObjectMeta: metav1.ObjectMeta{Name: "foo"}, 17 Status: v1alpha1.UIResourceStatus{ 18 DisableStatus: v1alpha1.DisableResourceStatus{ 19 State: state, 20 }, 21 }, 22 } 23 } 24 25 func disabledResource() *v1alpha1.UIResource { 26 return resourceWithDisableState(v1alpha1.DisableStateDisabled) 27 } 28 29 func enabledResource() *v1alpha1.UIResource { 30 return resourceWithDisableState(v1alpha1.DisableStateEnabled) 31 } 32 33 func TestLogging(t *testing.T) { 34 for _, tc := range []struct { 35 name string 36 old, new *v1alpha1.UIResource 37 expectedLog string 38 }{ 39 {"enable", disabledResource(), enabledResource(), "Resource \"foo\" enabled."}, 40 {"disable", enabledResource(), disabledResource(), "Resource \"foo\" disabled."}, 41 {"old nil", nil, enabledResource(), ""}, 42 {"old pending", resourceWithDisableState(v1alpha1.DisableStatePending), enabledResource(), ""}, 43 {"enabled, no change", enabledResource(), enabledResource(), ""}, 44 {"disabled, no change", disabledResource(), disabledResource(), ""}, 45 } { 46 t.Run(tc.name, func(t *testing.T) { 47 state := store.NewState() 48 state.UIResources["foo"] = tc.old 49 50 action := UIResourceUpsertAction{UIResource: tc.new} 51 52 HandleUIResourceUpsertAction(state, action) 53 54 log := state.LogStore.ManifestLog("foo") 55 if tc.expectedLog == "" { 56 require.Equal(t, "", log) 57 } else { 58 lines := strings.Split(log, "\n") 59 require.Equal(t, 2, len(lines)) 60 require.Contains(t, lines[0], tc.expectedLog) 61 require.Equal(t, "", lines[1]) 62 } 63 }) 64 } 65 }