Files
memind/scripts/memind-runtime-profile.test.mjs
T

55 lines
2.1 KiB
JavaScript

import assert from 'node:assert/strict';
import path from 'node:path';
import test from 'node:test';
import {
applyMemindRuntimeProfile,
resolveMemindRuntimeProfile,
} from './memind-runtime-profile.mjs';
test('resolveMemindRuntimeProfile defaults to local for dev', () => {
assert.equal(resolveMemindRuntimeProfile({}), 'local');
assert.equal(resolveMemindRuntimeProfile({ NODE_ENV: 'development' }), 'local');
});
test('resolveMemindRuntimeProfile honors explicit profile and production NODE_ENV', () => {
assert.equal(resolveMemindRuntimeProfile({ MEMIND_RUNTIME_PROFILE: 'split-service' }), 'split-service');
assert.equal(resolveMemindRuntimeProfile({ NODE_ENV: 'production' }), 'production');
});
test('applyMemindRuntimeProfile local forces monolith adapter and repo storage', () => {
const env = {
MINDSPACE_SERVER_ADAPTER: 'remote',
MINDSPACE_REMOTE_BASE_URL: 'http://127.0.0.1:8082',
};
const result = applyMemindRuntimeProfile({
rootDir: '/tmp/memind',
env,
profile: 'local',
});
assert.equal(result.profile, 'local');
assert.equal(env.MINDSPACE_SERVER_ADAPTER, 'local');
assert.match(env.MINDSPACE_STORAGE_ROOT, /\/tmp\/memind\/data\/mindspace$/);
});
test('applyMemindRuntimeProfile split-service expands auth token reference', () => {
const env = {
TKMIND_SERVER__SECRET_KEY: 'local-dev-secret',
MINDSPACE_REMOTE_AUTH_TOKEN: '${TKMIND_SERVER__SECRET_KEY}',
};
applyMemindRuntimeProfile({ env, profile: 'split-service' });
assert.equal(env.MINDSPACE_SERVER_ADAPTER, 'remote');
assert.equal(env.MINDSPACE_REMOTE_AUTH_TOKEN, 'local-dev-secret');
});
test('applyMemindRuntimeProfile production does not override adapter', () => {
const env = {
MINDSPACE_SERVER_ADAPTER: 'remote',
MINDSPACE_REMOTE_BASE_URL: 'http://127.0.0.1:8082',
MINDSPACE_REMOTE_AUTH_TOKEN: 'prod-token',
};
const result = applyMemindRuntimeProfile({ env, profile: 'production' });
assert.equal(result.profile, 'production');
assert.equal(env.MINDSPACE_SERVER_ADAPTER, 'remote');
assert.equal(env.MINDSPACE_REMOTE_AUTH_TOKEN, 'prod-token');
});