github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/internal/hud/webview/analytics_nudge_test.go (about) 1 package webview 2 3 import ( 4 "testing" 5 "time" 6 7 "github.com/stretchr/testify/assert" 8 9 "github.com/tilt-dev/tilt/internal/store" 10 "github.com/tilt-dev/tilt/pkg/model" 11 "github.com/tilt-dev/wmclient/pkg/analytics" 12 ) 13 14 func TestNeedsNudgeRedManifest(t *testing.T) { 15 state := newState(nil) 16 17 m := model.Manifest{Name: "server"} 18 targ := store.NewManifestTarget(m) 19 state.UpsertManifestTarget(targ) 20 21 nudge := NeedsNudge(*state) 22 assert.False(t, nudge, 23 "manifest has never had successful build, expected needsNudge = false") 24 } 25 26 func TestNeedsNudgeGreenManifest(t *testing.T) { 27 state := newState(nil) 28 29 m := model.Manifest{Name: "server"} 30 targ := store.NewManifestTarget(m) 31 targ.State = &store.ManifestState{LastSuccessfulDeployTime: time.Now()} 32 state.UpsertManifestTarget(targ) 33 34 nudge := NeedsNudge(*state) 35 assert.True(t, nudge, 36 "manifest HAS had had successful build, expected needsNudge = true") 37 } 38 39 func TestNeedsNudgeAlreadyOpted(t *testing.T) { 40 state := newState(nil) 41 42 state.AnalyticsUserOpt = analytics.OptIn 43 m := model.Manifest{Name: "server"} 44 targ := store.NewManifestTarget(m) 45 targ.State = &store.ManifestState{LastSuccessfulDeployTime: time.Now()} 46 state.UpsertManifestTarget(targ) 47 48 nudge := NeedsNudge(*state) 49 assert.False(t, nudge, 50 "user already opted in, expected needsNudge = false") 51 }