github.com/tilt-dev/wat@v0.0.2-0.20180626175338-9349b638e250/cli/analytics/opt_test.go (about) 1 package analytics_test 2 3 import ( 4 "os" 5 "testing" 6 7 "github.com/windmilleng/wat/cli/analytics" 8 "github.com/windmilleng/wat/os/temp" 9 ) 10 11 func TestSetOptStr(t *testing.T) { 12 oldWindmillDir := os.Getenv("WINDMILL_DIR") 13 defer os.Setenv("WINDMILL_DIR", oldWindmillDir) 14 tmpdir, err := temp.NewDir("TestOpt") 15 if err != nil { 16 t.Fatalf("Error making temp dir: %v", err) 17 } 18 19 f := setup(t) 20 21 os.Setenv("WINDMILL_DIR", tmpdir.Path()) 22 23 f.assertOptStatus(analytics.OptDefault) 24 25 analytics.SetOptStr("opt-in") 26 f.assertOptStatus(analytics.OptIn) 27 28 analytics.SetOptStr("opt-out") 29 f.assertOptStatus(analytics.OptOut) 30 31 analytics.SetOptStr("in") 32 f.assertOptStatus(analytics.OptIn) 33 34 analytics.SetOptStr("out") 35 f.assertOptStatus(analytics.OptOut) 36 37 analytics.SetOptStr("foo") 38 f.assertOptStatus(analytics.OptDefault) 39 } 40 41 func TestSetOpt(t *testing.T) { 42 oldWindmillDir := os.Getenv("WINDMILL_DIR") 43 defer os.Setenv("WINDMILL_DIR", oldWindmillDir) 44 tmpdir, err := temp.NewDir("TestOpt") 45 if err != nil { 46 t.Fatalf("Error making temp dir: %v", err) 47 } 48 49 f := setup(t) 50 51 os.Setenv("WINDMILL_DIR", tmpdir.Path()) 52 53 f.assertOptStatus(analytics.OptDefault) 54 55 analytics.SetOpt(analytics.OptIn) 56 f.assertOptStatus(analytics.OptIn) 57 58 analytics.SetOpt(analytics.OptOut) 59 f.assertOptStatus(analytics.OptOut) 60 61 analytics.SetOpt(99999) 62 f.assertOptStatus(analytics.OptDefault) 63 } 64 65 type fixture struct { 66 t *testing.T 67 } 68 69 func setup(t *testing.T) *fixture { 70 return &fixture{t: t} 71 } 72 73 func (f *fixture) assertOptStatus(expected analytics.Opt) { 74 actual, err := analytics.OptStatus() 75 if err != nil { 76 f.t.Fatal(err) 77 } 78 if actual != expected { 79 f.t.Errorf("got opt status %v, expected %v", actual, expected) 80 } 81 }