Files
memind/skills-registry.test.mjs
T
John 6ee6fd64dd Add MindSpace page live edit, chat skills, and H5 deploy tooling.
Introduce page edit sessions with draft preview and patch API, chat skill picker, user memory profile, h5ApiBase resolution, voice WAV transport, and scripts for 105/g2 deployment and Plaza local dev.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-15 22:09:38 -07:00

51 lines
1.7 KiB
JavaScript

import test from 'node:test';
import assert from 'node:assert/strict';
import {
applySkillGrantsToCapabilities,
DEFAULT_USER_SKILLS,
listPlatformSkillCatalog,
normalizeSkillPatch,
resolveSkillMap,
} from './skills-registry.mjs';
import path from 'node:path';
import { fileURLToPath } from 'node:url';
const h5Root = path.dirname(fileURLToPath(import.meta.url));
test('lists static-page-publish in platform catalog', () => {
const catalog = listPlatformSkillCatalog(h5Root);
assert.ok(catalog.some((item) => item.name === 'static-page-publish'));
});
test('granting publish skill enables static_publish capability', () => {
const caps = applySkillGrantsToCapabilities(
{ static_publish: false, skills: false },
{ 'static-page-publish': true },
);
assert.equal(caps.static_publish, true);
assert.equal(caps.skills, true);
});
test('resolveSkillMap prefers user overrides', () => {
const catalog = listPlatformSkillCatalog(h5Root);
const resolved = resolveSkillMap(
{ 'static-page-publish': false },
{ 'static-page-publish': true },
catalog,
);
assert.equal(resolved['static-page-publish'], true);
});
test('normalizeSkillPatch ignores unknown skills', () => {
const catalog = listPlatformSkillCatalog(h5Root);
assert.deepEqual(normalizeSkillPatch(catalog, { unknown: true }), {});
});
test('DEFAULT_USER_SKILLS enables common platform skills', () => {
assert.equal(DEFAULT_USER_SKILLS.web, true);
assert.equal(DEFAULT_USER_SKILLS.search, true);
assert.equal(DEFAULT_USER_SKILLS['form-builder'], true);
assert.equal(DEFAULT_USER_SKILLS['table-viewer'], true);
assert.equal(DEFAULT_USER_SKILLS['static-page-publish'], false);
});