github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/tiltfile/analytics/analytics_test.go (about)

     1  package analytics
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/stretchr/testify/assert"
     7  
     8  	"github.com/tilt-dev/wmclient/pkg/analytics"
     9  
    10  	"github.com/tilt-dev/tilt/internal/tiltfile/starkit"
    11  )
    12  
    13  func TestEmpty(t *testing.T) {
    14  	f := NewFixture(t)
    15  	f.File("Tiltfile", `
    16  `)
    17  	result, err := f.ExecFile("Tiltfile")
    18  	assert.NoError(t, err)
    19  	assert.Equal(t, analytics.OptDefault, MustState(result).Opt)
    20  }
    21  
    22  func TestEnableTrue(t *testing.T) {
    23  	f := NewFixture(t)
    24  	f.File("Tiltfile", `
    25  analytics_settings(enable=True)
    26  `)
    27  	result, err := f.ExecFile("Tiltfile")
    28  	assert.NoError(t, err)
    29  	assert.Equal(t, analytics.OptIn, MustState(result).Opt)
    30  }
    31  
    32  func TestEnableFalse(t *testing.T) {
    33  	f := NewFixture(t)
    34  	f.File("Tiltfile", `
    35  analytics_settings(enable=False)
    36  `)
    37  	result, err := f.ExecFile("Tiltfile")
    38  	assert.NoError(t, err)
    39  	assert.Equal(t, analytics.OptOut, MustState(result).Opt)
    40  }
    41  
    42  func TestReportToAnalytics(t *testing.T) {
    43  	f := NewFixture(t)
    44  	f.File("Tiltfile", `
    45  experimental_analytics_report({'1': '2'})
    46  # the second call's "1" value replaces the first
    47  experimental_analytics_report({'1': '2a', '3': '4'})
    48  `)
    49  	result, err := f.ExecFile("Tiltfile")
    50  	assert.NoError(t, err)
    51  	assert.Equal(t, map[string]string{"1": "2a", "3": "4"}, MustState(result).CustomTagsToReport)
    52  }
    53  
    54  func NewFixture(tb testing.TB) *starkit.Fixture {
    55  	return starkit.NewFixture(tb, NewPlugin())
    56  }