ever-brain / packages /cli /test /materialize-service.test.ts
AlexKurian's picture
feat: complete Ever-Brain engine, MCP server, CLI evb mcp command, Dockerfile and release workflow
61b1da1
Raw History Blame Contribute Delete
1.72 kB
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
import fs from 'node:fs';
import path from 'node:path';
import os from 'node:os';
import { materializeService } from '../src/services/materialize-service.js';
import { cacheService } from '../src/services/cache-service.js';
describe('MaterializeService', () => {
let testDir: string;
beforeEach(() => {
testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'evb-mat-test-'));
});
afterEach(() => {
fs.rmSync(testDir, { recursive: true, force: true });
});
it('materializes skill into universal .agents environment by default', () => {
cacheService.writeCachedFile(
testDir,
'skills/db-migrate/SKILL.md',
'---\nname: db-migrate\n---\n# DB Migration Runbook'
);
const result = materializeService.materialize(testDir, 'db-migrate');
expect(result.targetAgent).toBe('agents');
expect(result.filesCopied).toBe(1);
const destFile = path.join(testDir, '.agents', 'skills', 'db-migrate', 'SKILL.md');
expect(fs.existsSync(destFile)).toBe(true);
expect(fs.readFileSync(destFile, 'utf8')).toContain('DB Migration Runbook');
});
it('materializes skill into Cursor environment as .mdc rule when requested', () => {
cacheService.writeCachedFile(
testDir,
'skills/testing/SKILL.md',
'# Testing Guideline'
);
const result = materializeService.materialize(testDir, 'testing', { target: 'cursor' });
expect(result.targetAgent).toBe('cursor');
const destFile = path.join(testDir, '.cursor', 'rules', 'testing.mdc');
expect(fs.existsSync(destFile)).toBe(true);
expect(fs.readFileSync(destFile, 'utf8')).toContain('Testing Guideline');
});
});