diff --git a/backend/internal/service/setting_service_wechat_config_test.go b/backend/internal/service/setting_service_wechat_config_test.go index 45bf479e..73d86e8f 100644 --- a/backend/internal/service/setting_service_wechat_config_test.go +++ b/backend/internal/service/setting_service_wechat_config_test.go @@ -70,8 +70,8 @@ func TestSettingService_GetWeChatConnectOAuthConfig_UsesDatabaseOverrides(t *tes got, err := svc.GetWeChatConnectOAuthConfig(context.Background()) require.NoError(t, err) require.True(t, got.Enabled) - require.Equal(t, "wx-db-app", got.AppID) - require.Equal(t, "wx-db-secret", got.AppSecret) + require.Equal(t, "wx-db-app", got.AppIDForMode("mp")) + require.Equal(t, "wx-db-secret", got.AppSecretForMode("mp")) require.True(t, got.OpenEnabled) require.True(t, got.MPEnabled) require.Equal(t, "mp", got.Mode) diff --git a/frontend/src/components/auth/WechatOAuthSection.vue b/frontend/src/components/auth/WechatOAuthSection.vue index 6366582c..ce90738c 100644 --- a/frontend/src/components/auth/WechatOAuthSection.vue +++ b/frontend/src/components/auth/WechatOAuthSection.vue @@ -43,9 +43,13 @@ const props = withDefaults(defineProps<{ const appStore = useAppStore() const route = useRoute() -const { t } = useI18n() +const { t, locale } = useI18n() const providerName = computed(() => t('auth.wechatProviderName')) +function localizeWeChatHint(zh: string, en: string): string { + return locale.value.startsWith('zh') ? zh : en +} + const resolvedStart = computed(() => resolveWeChatOAuthStart(appStore.cachedPublicSettings)) const buttonDisabled = computed(() => props.disabled || resolvedStart.value.mode === null) const disabledHint = computed(() => { diff --git a/frontend/src/views/admin/SettingsView.vue b/frontend/src/views/admin/SettingsView.vue index 96e179c2..b2ab3e00 100644 --- a/frontend/src/views/admin/SettingsView.vue +++ b/frontend/src/views/admin/SettingsView.vue @@ -1434,6 +1434,7 @@ { expect( ( - wrapper.get('[data-testid="wechat-connect-app-id"]') + wrapper.get('[data-testid="wechat-connect-mp-app-id"]') .element as HTMLInputElement ).value, ).toBe("wx-app-id-123"); @@ -685,7 +685,7 @@ describe("admin SettingsView wechat connect controls", () => { ); expect( wrapper - .get('[data-testid="wechat-connect-app-secret"]') + .get('[data-testid="wechat-connect-mp-app-secret"]') .attributes("placeholder"), ).toContain("密钥已配置"); expect( @@ -703,10 +703,10 @@ describe("admin SettingsView wechat connect controls", () => { await openSecurityTab(wrapper); await wrapper - .get('[data-testid="wechat-connect-app-id"]') + .get('[data-testid="wechat-connect-mp-app-id"]') .setValue("wx-app-id-updated"); await wrapper - .get('[data-testid="wechat-connect-app-secret"]') + .get('[data-testid="wechat-connect-mp-app-secret"]') .setValue("new-secret"); await wrapper .get('[data-testid="wechat-connect-open-enabled"]') @@ -728,9 +728,10 @@ describe("admin SettingsView wechat connect controls", () => { expect.objectContaining({ wechat_connect_enabled: true, wechat_connect_app_id: "wx-app-id-updated", - wechat_connect_app_secret: "new-secret", wechat_connect_open_enabled: true, wechat_connect_mp_enabled: true, + wechat_connect_mp_app_id: "wx-app-id-updated", + wechat_connect_mp_app_secret: "new-secret", wechat_connect_redirect_url: "https://admin.example.com/api/v1/auth/oauth/wechat/callback", wechat_connect_frontend_redirect_url: "/auth/wechat/callback", @@ -738,13 +739,13 @@ describe("admin SettingsView wechat connect controls", () => { ); expect( ( - wrapper.get('[data-testid="wechat-connect-app-secret"]') + wrapper.get('[data-testid="wechat-connect-mp-app-secret"]') .element as HTMLInputElement ).value, ).toBe(""); expect( wrapper - .get('[data-testid="wechat-connect-app-secret"]') + .get('[data-testid="wechat-connect-mp-app-secret"]') .attributes("placeholder"), ).toContain("密钥已配置"); });