(t *testing.T)
| 118 | } |
| 119 | |
| 120 | func 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{ |
nothing calls this directly
no test coverage detected