fix: 更新邮箱 OAuth 单测契约
This commit is contained in:
@@ -685,6 +685,16 @@ func TestAPIContracts(t *testing.T) {
|
||||
"oidc_connect_userinfo_email_path": "",
|
||||
"oidc_connect_userinfo_id_path": "",
|
||||
"oidc_connect_userinfo_username_path": "",
|
||||
"github_oauth_enabled": false,
|
||||
"github_oauth_client_id": "",
|
||||
"github_oauth_client_secret_configured": false,
|
||||
"github_oauth_redirect_url": "",
|
||||
"github_oauth_frontend_redirect_url": "/auth/oauth/callback",
|
||||
"google_oauth_enabled": false,
|
||||
"google_oauth_client_id": "",
|
||||
"google_oauth_client_secret_configured": false,
|
||||
"google_oauth_redirect_url": "",
|
||||
"google_oauth_frontend_redirect_url": "/auth/oauth/callback",
|
||||
"ops_monitoring_enabled": false,
|
||||
"ops_realtime_monitoring_enabled": true,
|
||||
"ops_query_mode_default": "auto",
|
||||
@@ -700,6 +710,16 @@ func TestAPIContracts(t *testing.T) {
|
||||
"auth_source_default_email_subscriptions": [],
|
||||
"auth_source_default_email_grant_on_signup": false,
|
||||
"auth_source_default_email_grant_on_first_bind": false,
|
||||
"auth_source_default_github_balance": 0,
|
||||
"auth_source_default_github_concurrency": 5,
|
||||
"auth_source_default_github_subscriptions": [],
|
||||
"auth_source_default_github_grant_on_signup": false,
|
||||
"auth_source_default_github_grant_on_first_bind": false,
|
||||
"auth_source_default_google_balance": 0,
|
||||
"auth_source_default_google_concurrency": 5,
|
||||
"auth_source_default_google_subscriptions": [],
|
||||
"auth_source_default_google_grant_on_signup": false,
|
||||
"auth_source_default_google_grant_on_first_bind": false,
|
||||
"auth_source_default_linuxdo_balance": 0,
|
||||
"auth_source_default_linuxdo_concurrency": 5,
|
||||
"auth_source_default_linuxdo_subscriptions": [],
|
||||
@@ -898,6 +918,16 @@ func TestAPIContracts(t *testing.T) {
|
||||
"oidc_connect_userinfo_email_path": "",
|
||||
"oidc_connect_userinfo_id_path": "",
|
||||
"oidc_connect_userinfo_username_path": "",
|
||||
"github_oauth_enabled": false,
|
||||
"github_oauth_client_id": "",
|
||||
"github_oauth_client_secret_configured": false,
|
||||
"github_oauth_redirect_url": "",
|
||||
"github_oauth_frontend_redirect_url": "/auth/oauth/callback",
|
||||
"google_oauth_enabled": false,
|
||||
"google_oauth_client_id": "",
|
||||
"google_oauth_client_secret_configured": false,
|
||||
"google_oauth_redirect_url": "",
|
||||
"google_oauth_frontend_redirect_url": "/auth/oauth/callback",
|
||||
"site_name": "Sub2API",
|
||||
"site_logo": "",
|
||||
"site_subtitle": "Subscription to API Conversion Platform",
|
||||
@@ -1005,6 +1035,16 @@ func TestAPIContracts(t *testing.T) {
|
||||
"auth_source_default_email_subscriptions": [],
|
||||
"auth_source_default_email_grant_on_signup": false,
|
||||
"auth_source_default_email_grant_on_first_bind": false,
|
||||
"auth_source_default_github_balance": 0,
|
||||
"auth_source_default_github_concurrency": 5,
|
||||
"auth_source_default_github_subscriptions": [],
|
||||
"auth_source_default_github_grant_on_signup": false,
|
||||
"auth_source_default_github_grant_on_first_bind": false,
|
||||
"auth_source_default_google_balance": 0,
|
||||
"auth_source_default_google_concurrency": 5,
|
||||
"auth_source_default_google_subscriptions": [],
|
||||
"auth_source_default_google_grant_on_signup": false,
|
||||
"auth_source_default_google_grant_on_first_bind": false,
|
||||
"auth_source_default_linuxdo_balance": 0,
|
||||
"auth_source_default_linuxdo_concurrency": 5,
|
||||
"auth_source_default_linuxdo_subscriptions": [],
|
||||
|
||||
@@ -229,6 +229,67 @@ func TestRegisterOAuthEmailAccountSetsNormalizedSignupSourceOnCreatedUser(t *tes
|
||||
require.Equal(t, "oidc", userRepo.created[0].SignupSource)
|
||||
}
|
||||
|
||||
func TestRegisterOAuthEmailAccountKeepsGitHubAndGoogleSignupSource(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
email string
|
||||
signupSource string
|
||||
want string
|
||||
}{
|
||||
{
|
||||
name: "github",
|
||||
email: "github@example.com",
|
||||
signupSource: " GitHub ",
|
||||
want: "github",
|
||||
},
|
||||
{
|
||||
name: "google",
|
||||
email: "google@example.com",
|
||||
signupSource: " Google ",
|
||||
want: "google",
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
userRepo := &userRepoStub{nextID: 43}
|
||||
emailCache := &emailCacheStub{
|
||||
data: &VerificationCodeData{
|
||||
Code: "246810",
|
||||
Attempts: 0,
|
||||
CreatedAt: time.Now().UTC(),
|
||||
ExpiresAt: time.Now().UTC().Add(15 * time.Minute),
|
||||
},
|
||||
}
|
||||
authService := newOAuthEmailFlowAuthService(
|
||||
userRepo,
|
||||
&redeemCodeRepoStub{},
|
||||
&refreshTokenCacheStub{},
|
||||
map[string]string{
|
||||
SettingKeyRegistrationEnabled: "true",
|
||||
SettingKeyEmailVerifyEnabled: "true",
|
||||
},
|
||||
emailCache,
|
||||
)
|
||||
|
||||
tokenPair, user, err := authService.RegisterOAuthEmailAccount(
|
||||
context.Background(),
|
||||
tt.email,
|
||||
"secret-123",
|
||||
"246810",
|
||||
"",
|
||||
tt.signupSource,
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
require.NotNil(t, tokenPair)
|
||||
require.NotNil(t, user)
|
||||
require.Len(t, userRepo.created, 1)
|
||||
require.Equal(t, tt.want, userRepo.created[0].SignupSource)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestRegisterOAuthEmailAccountFallsBackUnknownSignupSourceToEmail(t *testing.T) {
|
||||
userRepo := &userRepoStub{nextID: 43}
|
||||
emailCache := &emailCacheStub{
|
||||
@@ -256,7 +317,7 @@ func TestRegisterOAuthEmailAccountFallsBackUnknownSignupSourceToEmail(t *testing
|
||||
"secret-123",
|
||||
"246810",
|
||||
"",
|
||||
"github",
|
||||
"unknown-provider",
|
||||
)
|
||||
|
||||
require.NoError(t, err)
|
||||
|
||||
Reference in New Issue
Block a user