Files
memind/skills-registry.test.mjs
T
john 9b4a25799f Add smart ACK provider for WeChat MP replies
Replace fixed ackText with a rule-based AckProvider that picks
response templates by message type and intent (translate, summary,
rewrite, poster, ppt, mindmap, code, search, schedule). Pure sync,
zero I/O, auto-falls back to config.ackText on any error.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-26 15:19:03 +08:00

55 lines
1.9 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'));
assert.ok(catalog.some((item) => item.name === 'schedule-assistant'));
assert.ok(catalog.some((item) => item.name === 'product-campaign-page'));
});
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['schedule-assistant'], true);
assert.equal(DEFAULT_USER_SKILLS['form-builder'], true);
assert.equal(DEFAULT_USER_SKILLS['table-viewer'], true);
assert.equal(DEFAULT_USER_SKILLS['product-campaign-page'], true);
assert.equal(DEFAULT_USER_SKILLS['static-page-publish'], false);
});