feat: 添加手机号短信服务提供商顺序的支持,并更新相关测试用例

This commit is contained in:
QLHazyCoder
2026-05-05 02:53:41 +08:00
parent cb41f5c243
commit 75bb53cec1
2 changed files with 15 additions and 0 deletions
+13
View File
@@ -3061,6 +3061,11 @@ function collectSettingsPayload() {
const phoneSmsProviderValue = typeof selectPhoneSmsProvider !== 'undefined' && selectPhoneSmsProvider
? normalizePhoneSmsProvider(selectPhoneSmsProvider.value)
: normalizePhoneSmsProvider(latestState?.phoneSmsProvider);
const phoneSmsProviderOrderValue = typeof getSelectedPhoneSmsProviderOrder === 'function'
? getSelectedPhoneSmsProviderOrder()
: (typeof normalizePhoneSmsProviderOrderValue === 'function'
? normalizePhoneSmsProviderOrderValue(latestState?.phoneSmsProviderOrder || [], [])
: []);
const currentPhoneSmsApiKeyValue = typeof inputHeroSmsApiKey !== 'undefined' && inputHeroSmsApiKey
? (inputHeroSmsApiKey.value || '')
: '';
@@ -3424,6 +3429,7 @@ function collectSettingsPayload() {
phoneVerificationEnabled: Boolean(inputPhoneVerificationEnabled?.checked),
signupMethod: selectedSignupMethod,
phoneSmsProvider: phoneSmsProviderValue,
phoneSmsProviderOrder: phoneSmsProviderOrderValue,
verificationResendCount: normalizeVerificationResendCount(
inputVerificationResendCount?.value,
DEFAULT_VERIFICATION_RESEND_COUNT
@@ -8098,6 +8104,13 @@ function applySettingsState(state) {
? DEFAULT_NEX_SMS_SERVICE_CODE
: 'ot';
setPhoneSmsProviderSelectValue(restoredPhoneSmsProvider);
const restoredPhoneSmsProviderOrder = typeof applyPhoneSmsProviderOrderSelection === 'function'
? applyPhoneSmsProviderOrderSelection(state?.phoneSmsProviderOrder || [], {
ensureDefault: false,
syncProvider: false,
})
: [];
updatePhoneSmsProviderOrderSummary(restoredPhoneSmsProviderOrder);
if (previousPhoneSmsProvider !== restoredPhoneSmsProvider) {
heroSmsCountrySelectionOrder = [];
loadHeroSmsCountries().catch((error) => {
@@ -691,6 +691,7 @@ ${extractFunction('normalizeNexSmsCountryIdValue')}
${extractFunction('normalizeNexSmsCountryOrderValue')}
${extractFunction('normalizeNexSmsServiceCodeValue')}
function getSelectedPhoneSmsProvider() { return normalizePhoneSmsProvider(selectPhoneSmsProvider?.value || latestState?.phoneSmsProvider); }
function getSelectedPhoneSmsProviderOrder() { return ['nexsms', '5sim']; }
${extractFunction('normalizeFiveSimCountryId')}
${extractFunction('normalizeFiveSimCountryLabel')}
${extractFunction('normalizeFiveSimOperator')}
@@ -727,6 +728,7 @@ return { collectSettingsPayload };
assert.equal(payload.phoneVerificationEnabled, true);
assert.equal(payload.signupMethod, 'phone');
assert.equal(payload.phoneSmsProvider, 'hero-sms');
assert.deepStrictEqual(payload.phoneSmsProviderOrder, ['nexsms', '5sim']);
assert.equal(payload.accountRunHistoryTextEnabled, true);
assert.equal(payload.accountRunHistoryHelperBaseUrl, 'http://127.0.0.1:17373');
assert.equal(payload.heroSmsApiKey, 'demo-key');