skill-save-payload.test.ts
1 import assert from 'node:assert/strict' 2 import test from 'node:test' 3 4 import { buildSkillSavePayload } from './skill-save-payload' 5 6 test('buildSkillSavePayload preserves imported skill metadata when saving', () => { 7 const payload = buildSkillSavePayload({ 8 name: 'GitHub Sync', 9 filename: 'github-sync.md', 10 description: 'Sync GitHub issues into tasks.', 11 content: '# Sync issues', 12 scope: 'agent', 13 agentIds: ['agent-1'], 14 }, { 15 sourceUrl: 'https://example.com/SKILL.md', 16 sourceFormat: 'openclaw', 17 author: 'Codex', 18 tags: ['github', 'tasks'], 19 version: '1.2.3', 20 homepage: 'https://example.com/github-sync', 21 primaryEnv: 'GITHUB_TOKEN', 22 skillKey: 'github-sync', 23 always: true, 24 installOptions: [{ kind: 'brew', label: 'gh', bins: ['gh'] }], 25 skillRequirements: { env: ['GITHUB_TOKEN'] }, 26 detectedEnvVars: ['GITHUB_TOKEN'], 27 security: { level: 'medium', notes: ['Review install steps.'] }, 28 frontmatter: { name: 'github-sync', metadata: { openclaw: { primaryEnv: 'GITHUB_TOKEN' } } }, 29 }) 30 31 assert.equal(payload.sourceFormat, 'openclaw') 32 assert.equal(payload.version, '1.2.3') 33 assert.equal(payload.primaryEnv, 'GITHUB_TOKEN') 34 assert.equal(payload.skillKey, 'github-sync') 35 assert.deepEqual(payload.agentIds, ['agent-1']) 36 assert.deepEqual(payload.skillRequirements, { env: ['GITHUB_TOKEN'] }) 37 assert.deepEqual(payload.security, { level: 'medium', notes: ['Review install steps.'] }) 38 assert.deepEqual(payload.frontmatter, { name: 'github-sync', metadata: { openclaw: { primaryEnv: 'GITHUB_TOKEN' } } }) 39 })