Files
FlowPilot/tests/sms-bower-registry.test.js
2026-05-30 21:30:14 +08:00

26 lines
1.1 KiB
JavaScript

const test = require('node:test');
const assert = require('node:assert/strict');
const fs = require('node:fs');
const vm = require('node:vm');
function loadRegistry() {
const sandbox = { globalThis: {} };
sandbox.self = sandbox.globalThis;
vm.runInNewContext(fs.readFileSync('phone-sms/providers/sms-bower.js', 'utf8'), sandbox);
vm.runInNewContext(fs.readFileSync('phone-sms/providers/registry.js', 'utf8'), sandbox);
return sandbox.globalThis.PhoneSmsProviderRegistry;
}
test('SMS Bower is registered as a known phone SMS provider', () => {
const registry = loadRegistry();
assert.equal(registry.normalizeProviderId('sms-bower'), 'sms-bower');
assert.equal(registry.getProviderLabel('sms-bower'), 'SMS Bower');
assert.ok(registry.getProviderIds().includes('sms-bower'));
assert.deepEqual(
Array.from(registry.normalizeProviderOrder(['sms-bower', 'hero-sms'])),
['sms-bower', 'hero-sms']
);
const provider = registry.createProvider('sms-bower', { fetchImpl: async () => ({ ok: true, text: async () => 'ACCESS_BALANCE:1.23' }) });
assert.equal(provider.id, 'sms-bower');
});