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

     1  package telemetry
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/tilt-dev/tilt/pkg/model"
     8  
     9  	"github.com/stretchr/testify/assert"
    10  
    11  	"github.com/tilt-dev/tilt/internal/tiltfile/starkit"
    12  )
    13  
    14  func TestTelemetryCmdString(t *testing.T) {
    15  	f := newFixture(t)
    16  	f.File("Tiltfile", "experimental_telemetry_cmd('foo.sh')")
    17  	result, err := f.ExecFile("Tiltfile")
    18  
    19  	assert.NoError(t, err)
    20  	assert.Equal(t, model.ToHostCmdInDir("foo.sh", f.Path()), MustState(result).Cmd)
    21  	assert.Equal(t, model.DefaultTelemetryPeriod, MustState(result).Period)
    22  }
    23  
    24  func TestTelemetryPeriod(t *testing.T) {
    25  	f := newFixture(t)
    26  	f.File("Tiltfile", "experimental_telemetry_cmd('foo.sh', period='5s')")
    27  
    28  	result, err := f.ExecFile("Tiltfile")
    29  	assert.NoError(t, err)
    30  	assert.Equal(t, 5*time.Second, MustState(result).Period)
    31  }
    32  
    33  func TestTelemetryCmdArray(t *testing.T) {
    34  	f := newFixture(t)
    35  	f.File("Tiltfile", "experimental_telemetry_cmd(['foo.sh'])")
    36  	result, err := f.ExecFile("Tiltfile")
    37  
    38  	assert.NoError(t, err)
    39  	assert.Equal(t, model.Cmd{Argv: []string{"foo.sh"}, Dir: f.Path()}, MustState(result).Cmd)
    40  }
    41  
    42  func TestTelemetryCmdEmpty(t *testing.T) {
    43  	f := newFixture(t)
    44  	f.File("Tiltfile", "experimental_telemetry_cmd('')")
    45  	_, err := f.ExecFile("Tiltfile")
    46  
    47  	assert.EqualError(t, err, "cmd cannot be empty")
    48  }
    49  
    50  func TestTelemetryCmdMultiple(t *testing.T) {
    51  	f := newFixture(t)
    52  	f.File("Tiltfile", `
    53  experimental_telemetry_cmd('foo.sh')
    54  experimental_telemetry_cmd('bar.sh')
    55  `)
    56  	_, err := f.ExecFile("Tiltfile")
    57  	assert.EqualError(t, err, "experimental_telemetry_cmd called multiple times; already set to foo.sh")
    58  }
    59  
    60  func newFixture(tb testing.TB) *starkit.Fixture {
    61  	return starkit.NewFixture(tb, NewPlugin())
    62  }