26 lines
1.1 KiB
JavaScript
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');
|
|
});
|