github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/cli/disable_test.go (about) 1 package cli 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestDisable(t *testing.T) { 10 for _, tc := range []struct { 11 name string 12 args []string 13 expectedEnabled []string 14 expectedError string 15 }{ 16 { 17 "normal", 18 []string{"enabled_a", "enabled_b"}, 19 []string{"enabled_c", "(Tiltfile)"}, 20 "", 21 }, 22 { 23 "all", 24 []string{"--all"}, 25 []string{"(Tiltfile)"}, 26 "", 27 }, 28 { 29 "all+names", 30 []string{"--all", "enabled_b"}, 31 nil, 32 "cannot use --all with resource names", 33 }, 34 { 35 "no names", 36 nil, 37 nil, 38 "must specify at least one resource", 39 }, 40 { 41 "nonexistent resource", 42 []string{"foo"}, 43 nil, 44 "no such resource \"foo\"", 45 }, 46 { 47 "Tiltfile", 48 []string{"(Tiltfile)"}, 49 nil, 50 "(Tiltfile) cannot be enabled or disabled", 51 }, 52 } { 53 t.Run(tc.name, func(t *testing.T) { 54 f := newEnableFixture(t) 55 56 f.createResources() 57 58 cmd := disableCmd{} 59 c := cmd.register() 60 err := c.Flags().Parse(tc.args) 61 require.NoError(t, err) 62 err = cmd.run(f.ctx, c.Flags().Args()) 63 if tc.expectedError != "" { 64 require.Error(t, err) 65 require.Contains(t, err.Error(), tc.expectedError) 66 // if there's an error, expect enabled states to remain the same 67 tc.expectedEnabled = []string{"enabled_a", "enabled_b", "enabled_c", "(Tiltfile)"} 68 } else { 69 require.NoError(t, err) 70 } 71 72 require.ElementsMatch(t, tc.expectedEnabled, f.enabledResources()) 73 }) 74 } 75 }