Files
NetMesh/domain/cloudProviderIds.test.ts

33 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

import assert from 'node:assert/strict';
import { describe, it } from 'node:test';
import {
BUILTIN_CLOUD_PROVIDERS,
assertCloudProviderId,
isBuiltinCloudProvider,
isPluginCloudProviderId,
providerConnectionStorageKey,
} from './cloudProviderIds';
describe('cloudProviderIds', () => {
it('recognizes built-in providers', () => {
for (const id of BUILTIN_CLOUD_PROVIDERS) {
assert.equal(isBuiltinCloudProvider(id), true);
assert.equal(isPluginCloudProviderId(id), false);
assert.equal(providerConnectionStorageKey(id), `netcatty_provider_${id}_v1`);
}
});
it('accepts namespaced plugin provider IDs without coercing them to built-ins', () => {
const id = 'com.example.backup.sync';
assert.equal(isPluginCloudProviderId(id), true);
assert.equal(isBuiltinCloudProvider(id), false);
assert.equal(providerConnectionStorageKey(id), `netcatty_provider_plugin_v1:${id}`);
assert.equal(assertCloudProviderId(id), id);
});
it('rejects empty or NUL-containing provider IDs', () => {
assert.throws(() => assertCloudProviderId(''), /invalid/i);
assert.throws(() => assertCloudProviderId('bad\0id'), /invalid/i);
});
});