github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/feature/flags_test.go (about) 1 package feature 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 8 "github.com/stretchr/testify/assert" 9 ) 10 11 func TestGetPanicsIfKeyDoesntExist(t *testing.T) { 12 m := FeatureSet{} 13 assert.Panics(t, func() { 14 m.Get("foo") 15 }) 16 } 17 18 func TestIsEnabled(t *testing.T) { 19 m := FeatureSet{"foo": {Enabled: true}} 20 assert.True(t, m.Get("foo")) 21 } 22 23 func TestSetReturnsErrorOnUnknownKey(t *testing.T) { 24 m := FeatureSet{} 25 err := m.Set("foo", false) 26 assert.EqualError(t, err, "Unknown feature flag: foo") 27 } 28 29 func TestSetSimple(t *testing.T) { 30 m := FeatureSet{"foo": Value{Enabled: false}} 31 err := m.Set("foo", true) 32 assert.NoError(t, err) 33 assert.True(t, m.Get("foo")) 34 } 35 36 func TestSetNoop(t *testing.T) { 37 m := FeatureSet{"foo": Value{Status: Noop, Enabled: false}} 38 err := m.Set("foo", true) 39 assert.NoError(t, err) 40 assert.False(t, m.Get("foo")) 41 } 42 43 func TestSetObsolete(t *testing.T) { 44 m := FeatureSet{"foo": Value{Status: Obsolete, Enabled: false}} 45 err := m.Set("foo", true) 46 assert.EqualError(t, err, "Obsolete feature flag: foo") 47 } 48 49 func TestToEnabled(t *testing.T) { 50 m := FeatureSet{"foo": Value{Enabled: false}} 51 err := m.Set("foo", true) 52 require.NoError(t, err) 53 54 assert.Equal(t, map[string]bool{"foo": true}, m.ToEnabled()) 55 }