import assert from 'node:assert/strict'; import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; import test from 'node:test'; import { resolveAdminH5Root } from './bootstrap.mjs'; test('resolveAdminH5Root prefers an explicit skills root', () => { assert.equal( resolveAdminH5Root({ memindLib: '/runtime/memind-lib', env: { MEMIND_SKILLS_ROOT: '/srv/platform-skills', MEMIND_LIB_ROOT: '/srv/legacy-memind', }, root: '/srv/admin', }), '/srv/platform-skills', ); }); test('resolveAdminH5Root uses packaged memind-lib skills before the legacy Memind path', () => { const root = fs.mkdtempSync(path.join(os.tmpdir(), 'memind-adm-skills-')); const memindLib = path.join(root, 'memind-lib'); fs.mkdirSync(path.join(memindLib, 'skills'), { recursive: true }); try { assert.equal( resolveAdminH5Root({ memindLib, env: { MEMIND_LIB_ROOT: '/srv/legacy-memind' }, root, }), memindLib, ); } finally { fs.rmSync(root, { recursive: true, force: true }); } }); test('resolveAdminH5Root keeps the existing development fallback', () => { assert.equal( resolveAdminH5Root({ memindLib: '/missing/memind-lib', env: { MEMIND_LIB_ROOT: '/srv/memind' }, root: '/srv/admin', }), '/srv/memind', ); });