-
Notifications
You must be signed in to change notification settings - Fork 153
Expand file tree
/
Copy pathpowerpages-hook-utils.test.js
More file actions
45 lines (40 loc) · 2.04 KB
/
Copy pathpowerpages-hook-utils.test.js
File metadata and controls
45 lines (40 loc) · 2.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const test = require('node:test');
const assert = require('node:assert/strict');
const {
detectTrackedSkill,
getTrackedSkillFromToolInput,
getValidatorScript,
} = require('../lib/powerpages-hook-utils');
test('detectTrackedSkill recognizes tracked skill references', () => {
assert.equal(detectTrackedSkill('create-site'), 'create-site');
assert.equal(detectTrackedSkill('/power-pages:setup-auth'), 'setup-auth');
assert.equal(detectTrackedSkill('power-pages:add-seo'), 'add-seo');
assert.equal(detectTrackedSkill('/power-pages:deploy-site'), null);
});
test('detectTrackedSkill recognizes slash command aliases without plugin prefix', () => {
assert.equal(detectTrackedSkill('/create-site'), 'create-site');
assert.equal(detectTrackedSkill('/setup-auth'), 'setup-auth');
assert.equal(detectTrackedSkill('/add-server-logic'), 'add-server-logic');
assert.equal(detectTrackedSkill('/integrate-webapi'), 'integrate-webapi');
assert.equal(detectTrackedSkill('/audit-permissions'), 'audit-permissions');
assert.equal(detectTrackedSkill('/deploy-site'), null);
});
test('getTrackedSkillFromToolInput finds a tracked skill in common fields', () => {
assert.equal(getTrackedSkillFromToolInput({ skill_name: 'create-site' }), 'create-site');
assert.equal(getTrackedSkillFromToolInput({ name: '/power-pages:setup-auth' }), 'setup-auth');
assert.equal(
getTrackedSkillFromToolInput({ command: 'run /power-pages:add-server-logic for this repo' }),
'add-server-logic'
);
assert.equal(
getTrackedSkillFromToolInput({ command: 'run /power-pages:integrate-webapi for this repo' }),
'integrate-webapi'
);
assert.equal(getTrackedSkillFromToolInput({ name: 'deploy-site' }), null);
});
test('getValidatorScript returns validator paths only for command-backed skills', () => {
assert.match(getValidatorScript('create-site'), /validate-site\.js$/);
assert.match(getValidatorScript('add-server-logic'), /validate-serverlogic\.js$/);
assert.equal(getValidatorScript('test-site'), null);
assert.equal(getValidatorScript('missing-skill'), null);
});