a3f669d4e7
Signed-off-by: john <cynell@139.com>
61 lines
2.1 KiB
JavaScript
61 lines
2.1 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import {
|
|
assertMindSpaceServerAdapterContract,
|
|
createMindSpaceServerAdapter,
|
|
resolveMindSpaceServerAdapterKind,
|
|
} from './mindspace-server-adapter.mjs';
|
|
|
|
test('resolveMindSpaceServerAdapterKind defaults to local and rejects unknown kinds', () => {
|
|
assert.equal(resolveMindSpaceServerAdapterKind({}), 'local');
|
|
assert.equal(resolveMindSpaceServerAdapterKind({ MINDSPACE_SERVER_ADAPTER: 'REMOTE' }), 'remote');
|
|
assert.throws(
|
|
() => resolveMindSpaceServerAdapterKind({ MINDSPACE_SERVER_ADAPTER: 'legacy' }),
|
|
/Unsupported MINDSPACE_SERVER_ADAPTER/,
|
|
);
|
|
});
|
|
|
|
test('createMindSpaceServerAdapter returns a contract-complete local adapter by default', () => {
|
|
const adapter = createMindSpaceServerAdapter({
|
|
pool: {
|
|
query: async () => {
|
|
throw new Error('not implemented in unit test');
|
|
},
|
|
},
|
|
h5Root: '/tmp/h5',
|
|
env: {
|
|
MINDSPACE_STORAGE_ROOT: '/srv/mindspace-data',
|
|
H5_PUBLIC_BASE_URL: 'https://example.com',
|
|
},
|
|
maxFileBytes: 4096,
|
|
publicPageLimit: 3,
|
|
resolveUserIdForAgentSession: async () => 'user-1',
|
|
resolveWorkspaceRoot: async () => '/tmp/workspace',
|
|
logger: { log() {}, warn() {}, error() {} },
|
|
});
|
|
|
|
assert.equal(adapter.kind, 'local');
|
|
assert.equal(adapter.implementationStatus, 'ready');
|
|
assert.equal(assertMindSpaceServerAdapterContract(adapter), adapter);
|
|
});
|
|
|
|
test('createMindSpaceServerAdapter exposes a remote stub that fails fast when selected', () => {
|
|
const adapter = createMindSpaceServerAdapter({
|
|
env: {
|
|
MINDSPACE_SERVER_ADAPTER: 'remote',
|
|
MINDSPACE_REMOTE_BASE_URL: 'https://mindspace.example.com',
|
|
},
|
|
logger: { log() {}, warn() {}, error() {} },
|
|
});
|
|
|
|
assert.equal(adapter.kind, 'remote');
|
|
assert.equal(adapter.implementationStatus, 'scaffold');
|
|
assert.equal(assertMindSpaceServerAdapterContract(adapter), adapter);
|
|
assert.equal(adapter.assertReady(), true);
|
|
assert.deepEqual(adapter.startBackgroundJobs(), {
|
|
publicationCleanup: null,
|
|
agentWorker: null,
|
|
workspaceMaintenance: null,
|
|
});
|
|
});
|