feat: add SMS Bower phone SMS provider

This commit is contained in:
chick
2026-05-30 21:30:14 +08:00
parent 8cee2611ca
commit 5f871c3c40
10 changed files with 692 additions and 5 deletions
+14 -4
View File
@@ -24,30 +24,36 @@ test('phone sms provider registry normalizes ids, order and labels consistently'
PhoneSmsMaDaoProvider: {
createProvider: (deps = {}) => ({ provider: 'madao', deps }),
},
PhoneSmsBowerProvider: {
createProvider: (deps = {}) => ({ provider: 'sms-bower', deps }),
},
});
assert.deepStrictEqual(registry.getProviderIds(), ['hero-sms', '5sim', 'nexsms', 'madao']);
assert.deepStrictEqual(registry.getProviderIds(), ['hero-sms', '5sim', 'nexsms', 'madao', 'sms-bower']);
assert.equal(registry.normalizeProviderId(' NEXSMS '), 'nexsms');
assert.equal(registry.normalizeProviderId(' MaDao '), 'madao');
assert.equal(registry.normalizeProviderId('unknown-provider'), 'hero-sms');
assert.equal(registry.getProviderLabel('nexsms'), 'NexSMS');
assert.equal(registry.getProviderLabel('madao'), 'MaDao');
assert.equal(registry.getProviderLabel('sms-bower'), 'SMS Bower');
assert.equal(registry.getProviderDefinition('nexsms').moduleKey, 'PhoneSmsNexSmsProvider');
assert.equal(registry.getProviderDefinition('madao').moduleKey, 'PhoneSmsMaDaoProvider');
assert.equal(registry.getProviderDefinition('sms-bower').moduleKey, 'PhoneSmsBowerProvider');
assert.deepStrictEqual(
registry.normalizeProviderOrder([
{ provider: 'madao' },
{ provider: 'sms-bower' },
{ provider: 'nexsms' },
{ id: '5sim' },
{ value: 'hero-sms' },
'MADAO',
'NEXSMS',
]),
['madao', 'nexsms', '5sim', 'hero-sms']
['madao', 'sms-bower', 'nexsms', '5sim', 'hero-sms']
);
assert.deepStrictEqual(
registry.normalizeProviderOrder([], ['madao', 'nexsms', '5sim', 'nexsms']),
['madao', 'nexsms', '5sim']
registry.normalizeProviderOrder([], ['madao', 'sms-bower', 'nexsms', '5sim', 'nexsms']),
['madao', 'sms-bower', 'nexsms', '5sim']
);
assert.deepStrictEqual(
registry.createProvider('5sim', { foo: 1 }),
@@ -61,6 +67,10 @@ test('phone sms provider registry normalizes ids, order and labels consistently'
registry.createProvider('nexsms', { foo: 3 }),
{ provider: 'nexsms', deps: { foo: 3 } }
);
assert.deepStrictEqual(
registry.createProvider('sms-bower', { foo: 4 }),
{ provider: 'sms-bower', deps: { foo: 4 } }
);
});
test('phone sms provider registry can create the real MaDao provider module', () => {