(t *testing.T)
| 34 | ) |
| 35 | |
| 36 | func TestExternalAuthByID(t *testing.T) { |
| 37 | t.Parallel() |
| 38 | t.Run("PKCEMissing", func(t *testing.T) { |
| 39 | t.Parallel() |
| 40 | const providerID = "fake-github" |
| 41 | fake := oidctest.NewFakeIDP(t, oidctest.WithServing()) |
| 42 | |
| 43 | client := coderdtest.New(t, &coderdtest.Options{ |
| 44 | ExternalAuthConfigs: []*externalauth.Config{ |
| 45 | fake.ExternalAuthConfig(t, providerID, nil, func(cfg *externalauth.Config) { |
| 46 | cfg.Type = codersdk.EnhancedExternalAuthProviderGitHub.String() |
| 47 | cfg.CodeChallengeMethodsSupported = []promoauth.Oauth2PKCEChallengeMethod{} |
| 48 | }), |
| 49 | }, |
| 50 | }) |
| 51 | coderdtest.CreateFirstUser(t, client) |
| 52 | auth, err := client.ExternalAuthByID(context.Background(), providerID) |
| 53 | require.NoError(t, err) |
| 54 | require.False(t, auth.Authenticated) |
| 55 | }) |
| 56 | t.Run("Unauthenticated", func(t *testing.T) { |
| 57 | t.Parallel() |
| 58 | const providerID = "fake-github" |
| 59 | fake := oidctest.NewFakeIDP(t, oidctest.WithServing()) |
| 60 | |
| 61 | client := coderdtest.New(t, &coderdtest.Options{ |
| 62 | ExternalAuthConfigs: []*externalauth.Config{ |
| 63 | fake.ExternalAuthConfig(t, providerID, nil, func(cfg *externalauth.Config) { |
| 64 | cfg.Type = codersdk.EnhancedExternalAuthProviderGitHub.String() |
| 65 | }), |
| 66 | }, |
| 67 | }) |
| 68 | coderdtest.CreateFirstUser(t, client) |
| 69 | auth, err := client.ExternalAuthByID(context.Background(), providerID) |
| 70 | require.NoError(t, err) |
| 71 | require.False(t, auth.Authenticated) |
| 72 | }) |
| 73 | t.Run("AuthenticatedNoUser", func(t *testing.T) { |
| 74 | // Ensures that a provider that can't obtain a user can |
| 75 | // still return that the provider is authenticated. |
| 76 | t.Parallel() |
| 77 | const providerID = "fake-azure" |
| 78 | fake := oidctest.NewFakeIDP(t, oidctest.WithServing()) |
| 79 | |
| 80 | client := coderdtest.New(t, &coderdtest.Options{ |
| 81 | ExternalAuthConfigs: []*externalauth.Config{ |
| 82 | // AzureDevops doesn't have a user endpoint! |
| 83 | fake.ExternalAuthConfig(t, providerID, nil, func(cfg *externalauth.Config) { |
| 84 | cfg.Type = codersdk.EnhancedExternalAuthProviderAzureDevops.String() |
| 85 | }), |
| 86 | }, |
| 87 | }) |
| 88 | |
| 89 | coderdtest.CreateFirstUser(t, client) |
| 90 | fake.ExternalLogin(t, client) |
| 91 | |
| 92 | auth, err := client.ExternalAuthByID(context.Background(), providerID) |
| 93 | require.NoError(t, err) |
nothing calls this directly
no test coverage detected