Skip to content

Commit 4d2c3b1

Browse files
committed
Update e2e
1 parent 1310fd4 commit 4d2c3b1

1 file changed

Lines changed: 38 additions & 21 deletions

File tree

e2e/cli.e2e.ts

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,26 @@ paths:
100100
expect(result.exitCode).toBe(0);
101101
expect(result.stdout).toContain('AI DevKit initialized successfully');
102102
});
103+
104+
it('should save template registries to config', () => {
105+
const templatePath = join(projectDir, 'template.yaml');
106+
const templateContent = `environments:
107+
- claude
108+
phases:
109+
- requirements
110+
registries:
111+
my-org/skills: https://github.com/my-org/skills.git
112+
`;
113+
require('fs').writeFileSync(templatePath, templateContent);
114+
115+
const result = run(`init -t "${templatePath}"`, { cwd: projectDir });
116+
expect(result.exitCode).toBe(0);
117+
118+
const config = JSON.parse(readFileSync(join(projectDir, '.ai-devkit.json'), 'utf-8'));
119+
expect(config.registries).toEqual({
120+
'my-org/skills': 'https://github.com/my-org/skills.git'
121+
});
122+
});
103123
});
104124

105125
describe('lint command', () => {
@@ -302,16 +322,17 @@ describe('install command', () => {
302322
expect(result.exitCode).not.toBe(0);
303323
});
304324

305-
it('should install when skills is an object with installed array (issue #62)', () => {
325+
it('should install when config has registries and skills', () => {
306326
writeConfigFile(projectDir, {
307327
version: '1.0.0',
308328
environments: ['claude'],
309329
phases: ['requirements'],
310-
skills: {
311-
installed: [
312-
{ registry: 'codeaholicguy/ai-devkit', name: 'dev-lifecycle' }
313-
]
330+
registries: {
331+
'codeaholicguy/ai-devkit': 'https://github.com/codeaholicguy/ai-devkit.git'
314332
},
333+
skills: [
334+
{ registry: 'codeaholicguy/ai-devkit', name: 'dev-lifecycle' }
335+
],
315336
createdAt: new Date().toISOString(),
316337
updatedAt: new Date().toISOString()
317338
});
@@ -348,11 +369,9 @@ describe('skill command', () => {
348369
version: '1.0.0',
349370
environments: ['claude'],
350371
phases: [],
351-
skills: {
352-
installed: [
353-
{ registry: 'codeaholicguy/ai-devkit', name: 'dev-lifecycle' }
354-
]
355-
},
372+
skills: [
373+
{ registry: 'codeaholicguy/ai-devkit', name: 'dev-lifecycle' }
374+
],
356375
createdAt: new Date().toISOString(),
357376
updatedAt: new Date().toISOString()
358377
});
@@ -369,21 +388,19 @@ describe('skill command', () => {
369388

370389
// .ai-devkit.json should no longer list the skill
371390
const config = JSON.parse(readFileSync(join(projectDir, '.ai-devkit.json'), 'utf-8'));
372-
const installed = (config.skills?.installed ?? config.skills ?? []) as Array<{ name: string }>;
373-
expect(installed.some((s) => s.name === 'dev-lifecycle')).toBe(false);
391+
const skills = (config.skills ?? []) as Array<{ name: string }>;
392+
expect(skills.some((s) => s.name === 'dev-lifecycle')).toBe(false);
374393
});
375394

376395
it('should preserve remaining skills in .ai-devkit.json when removing one', () => {
377396
writeConfigFile(projectDir, {
378397
version: '1.0.0',
379398
environments: ['claude'],
380399
phases: [],
381-
skills: {
382-
installed: [
383-
{ registry: 'codeaholicguy/ai-devkit', name: 'dev-lifecycle' },
384-
{ registry: 'codeaholicguy/ai-devkit', name: 'memory' }
385-
]
386-
},
400+
skills: [
401+
{ registry: 'codeaholicguy/ai-devkit', name: 'dev-lifecycle' },
402+
{ registry: 'codeaholicguy/ai-devkit', name: 'memory' }
403+
],
387404
createdAt: new Date().toISOString(),
388405
updatedAt: new Date().toISOString()
389406
});
@@ -394,9 +411,9 @@ describe('skill command', () => {
394411
run('skill remove dev-lifecycle', { cwd: projectDir });
395412

396413
const config = JSON.parse(readFileSync(join(projectDir, '.ai-devkit.json'), 'utf-8'));
397-
const installed = (config.skills?.installed ?? config.skills ?? []) as Array<{ name: string }>;
398-
expect(installed.some((s) => s.name === 'dev-lifecycle')).toBe(false);
399-
expect(installed.some((s) => s.name === 'memory')).toBe(true);
414+
const skills = (config.skills ?? []) as Array<{ name: string }>;
415+
expect(skills.some((s) => s.name === 'dev-lifecycle')).toBe(false);
416+
expect(skills.some((s) => s.name === 'memory')).toBe(true);
400417
});
401418
});
402419
});

0 commit comments

Comments
 (0)