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  }