MCPcopy Index your code
hub / github.com/rilldata/rill / TestAnalyticsMigration

Function TestAnalyticsMigration

cli/pkg/dotrill/dotrill_test.go:120–204  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

118}
119
120func TestAnalyticsMigration(t *testing.T) {
121 d := New(t.TempDir())
122
123 // setup resets the homeDir and provides helpers for testing ~/.rill/local.json
124 setup := func(t *testing.T) (string, func() bool) {
125 d.homeDir = t.TempDir()
126 require.NoError(t, os.MkdirAll(filepath.Join(d.homeDir, ".rill"), os.ModePerm))
127 oldFilename := filepath.Join(d.homeDir, ".rill", "local.json")
128 oldExists := func() bool { _, err := os.Stat(oldFilename); return !os.IsNotExist(err) }
129 return oldFilename, oldExists
130 }
131
132 t.Run("InstallID only", func(t *testing.T) {
133 oldFilename, oldExists := setup(t)
134
135 // Test install ID transfer
136 err := os.WriteFile(oldFilename, []byte(`{"installId":"cd29afba-14ff-4cd1-98e6-050a9fb0fee9"}`), 0o644)
137 require.NoError(t, err)
138 require.True(t, oldExists())
139
140 // Check that it was set correctly
141 id, enabled, err := d.AnalyticsInfo()
142 require.NoError(t, err)
143 require.Equal(t, "cd29afba-14ff-4cd1-98e6-050a9fb0fee9", id)
144 require.True(t, enabled)
145 require.False(t, oldExists())
146
147 // Repeat, to ensure same is reported second time
148 id, enabled, err = d.AnalyticsInfo()
149 require.NoError(t, err)
150 require.Equal(t, "cd29afba-14ff-4cd1-98e6-050a9fb0fee9", id)
151 require.True(t, enabled)
152 })
153
154 t.Run("Analytics enabled", func(t *testing.T) {
155 oldFilename, oldExists := setup(t)
156
157 err := os.WriteFile(oldFilename, []byte(`{"installId":"cd29afba-14ff-4cd1-98e6-050a9fb0fee9", "analyticsEnabled": true}`), 0o644)
158 require.NoError(t, err)
159 require.True(t, oldExists())
160
161 id, enabled, err := d.AnalyticsInfo()
162 require.NoError(t, err)
163 require.Equal(t, "cd29afba-14ff-4cd1-98e6-050a9fb0fee9", id)
164 require.True(t, enabled)
165 require.False(t, oldExists())
166 })
167
168 t.Run("Analytics disabled", func(t *testing.T) {
169 oldFilename, oldExists := setup(t)
170
171 err := os.WriteFile(oldFilename, []byte(`{"installId":"cd29afba-14ff-4cd1-98e6-050a9fb0fee9", "analyticsEnabled": false}`), 0o644)
172 require.NoError(t, err)
173 require.True(t, oldExists())
174
175 id, enabled, err := d.AnalyticsInfo()
176 require.NoError(t, err)
177 require.Equal(t, "cd29afba-14ff-4cd1-98e6-050a9fb0fee9", id)

Callers

nothing calls this directly

Calls 8

setupFunction · 0.85
AnalyticsInfoMethod · 0.80
NewFunction · 0.70
TempDirMethod · 0.65
MkdirAllMethod · 0.65
StatMethod · 0.65
RunMethod · 0.45
LenMethod · 0.45

Tested by

no test coverage detected