(t *testing.T)
| 37 | ) |
| 38 | |
| 39 | func TestFirstUser(t *testing.T) { |
| 40 | t.Parallel() |
| 41 | t.Run("BadRequest", func(t *testing.T) { |
| 42 | t.Parallel() |
| 43 | client := coderdtest.New(t, nil) |
| 44 | |
| 45 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) |
| 46 | defer cancel() |
| 47 | |
| 48 | has, err := client.HasFirstUser(context.Background()) |
| 49 | require.NoError(t, err) |
| 50 | require.False(t, has) |
| 51 | |
| 52 | _, err = client.CreateFirstUser(ctx, codersdk.CreateFirstUserRequest{}) |
| 53 | require.Error(t, err) |
| 54 | }) |
| 55 | |
| 56 | t.Run("AlreadyExists", func(t *testing.T) { |
| 57 | t.Parallel() |
| 58 | client := coderdtest.New(t, nil) |
| 59 | _ = coderdtest.CreateFirstUser(t, client) |
| 60 | |
| 61 | ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong) |
| 62 | defer cancel() |
| 63 | |
| 64 | _, err := client.CreateFirstUser(ctx, codersdk.CreateFirstUserRequest{ |
| 65 | Email: "some@email.com", |
| 66 | Username: "exampleuser", |
| 67 | Password: "SomeSecurePassword!", |
| 68 | }) |
| 69 | var apiErr *codersdk.Error |
| 70 | require.ErrorAs(t, err, &apiErr) |
| 71 | require.Equal(t, http.StatusConflict, apiErr.StatusCode()) |
| 72 | }) |
| 73 | |
| 74 | t.Run("Create", func(t *testing.T) { |
| 75 | t.Parallel() |
| 76 | ctx := testutil.Context(t, testutil.WaitShort) |
| 77 | client := coderdtest.New(t, nil) |
| 78 | _ = coderdtest.CreateFirstUser(t, client) |
| 79 | u, err := client.User(ctx, codersdk.Me) |
| 80 | require.NoError(t, err) |
| 81 | assert.Equal(t, coderdtest.FirstUserParams.Name, u.Name) |
| 82 | assert.Equal(t, coderdtest.FirstUserParams.Email, u.Email) |
| 83 | assert.Equal(t, coderdtest.FirstUserParams.Username, u.Username) |
| 84 | }) |
| 85 | |
| 86 | t.Run("Trial", func(t *testing.T) { |
| 87 | t.Parallel() |
| 88 | trialGenerated := make(chan struct{}) |
| 89 | entitlementsRefreshed := make(chan struct{}) |
| 90 | |
| 91 | client := coderdtest.New(t, &coderdtest.Options{ |
| 92 | TrialGenerator: func(context.Context, codersdk.LicensorTrialRequest) error { |
| 93 | close(trialGenerated) |
| 94 | return nil |
| 95 | }, |
| 96 | RefreshEntitlements: func(context.Context) error { |
nothing calls this directly
no test coverage detected