MCPcopy Index your code
hub / github.com/coder/coder / TestFirstUser_OnboardingTelemetry

Function TestFirstUser_OnboardingTelemetry

coderd/users_test.go:120–189  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

118}
119
120func TestFirstUser_OnboardingTelemetry(t *testing.T) {
121 t.Parallel()
122
123 t.Run("OnboardingInfoFlowsToSnapshot", func(t *testing.T) {
124 t.Parallel()
125
126 ctx := testutil.Context(t, testutil.WaitMedium)
127 fTelemetry := newFakeTelemetryReporter(ctx, t, 10)
128 client := coderdtest.New(t, &coderdtest.Options{
129 TelemetryReporter: fTelemetry,
130 })
131
132 _, err := client.CreateFirstUser(ctx, codersdk.CreateFirstUserRequest{
133 Email: "admin@coder.com",
134 Username: "admin",
135 Password: "SomeSecurePassword!",
136 OnboardingInfo: &codersdk.CreateFirstUserOnboardingInfo{
137 NewsletterMarketing: false,
138 NewsletterReleases: true,
139 },
140 })
141 require.NoError(t, err)
142
143 snapshot := testutil.TryReceive(ctx, t, fTelemetry.snapshots)
144 require.NotNil(t, snapshot.FirstUserOnboarding)
145 require.False(t, snapshot.FirstUserOnboarding.NewsletterMarketing)
146 require.True(t, snapshot.FirstUserOnboarding.NewsletterReleases)
147 })
148
149 t.Run("NilWhenOnboardingInfoOmitted", func(t *testing.T) {
150 t.Parallel()
151
152 ctx := testutil.Context(t, testutil.WaitMedium)
153 fTelemetry := newFakeTelemetryReporter(ctx, t, 10)
154 client := coderdtest.New(t, &coderdtest.Options{
155 TelemetryReporter: fTelemetry,
156 })
157
158 _, err := client.CreateFirstUser(ctx, codersdk.CreateFirstUserRequest{
159 Email: "admin@coder.com",
160 Username: "admin",
161 Password: "SomeSecurePassword!",
162 // No OnboardingInfo — simulates old CLI or OIDC flow.
163 })
164 require.NoError(t, err)
165
166 snapshot := testutil.TryReceive(ctx, t, fTelemetry.snapshots)
167 require.Nil(t, snapshot.FirstUserOnboarding)
168 })
169
170 t.Run("EmptyOnboardingInfoIsNonNilWithZeroFields", func(t *testing.T) {
171 t.Parallel()
172 ctx := testutil.Context(t, testutil.WaitMedium)
173 fTelemetry := newFakeTelemetryReporter(ctx, t, 10)
174 client := coderdtest.New(t, &coderdtest.Options{
175 TelemetryReporter: fTelemetry,
176 })
177 _, err := client.CreateFirstUser(ctx, codersdk.CreateFirstUserRequest{

Callers

nothing calls this directly

Calls 6

ContextFunction · 0.92
NewFunction · 0.92
TryReceiveFunction · 0.92
newFakeTelemetryReporterFunction · 0.85
CreateFirstUserMethod · 0.80
RunMethod · 0.65

Tested by

no test coverage detected