refactor: restructure add-gmail skill for new skill architecture
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
44
.claude/skills/add-gmail/tests/gmail.test.ts
Normal file
44
.claude/skills/add-gmail/tests/gmail.test.ts
Normal file
@@ -0,0 +1,44 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
|
||||
const root = process.cwd();
|
||||
const read = (f: string) => fs.readFileSync(path.join(root, f), 'utf-8');
|
||||
|
||||
function getGmailMode(): 'tool-only' | 'channel' {
|
||||
const p = path.join(root, '.nanoclaw/state.yaml');
|
||||
if (!fs.existsSync(p)) return 'channel';
|
||||
return read('.nanoclaw/state.yaml').includes('mode: tool-only') ? 'tool-only' : 'channel';
|
||||
}
|
||||
|
||||
const mode = getGmailMode();
|
||||
const channelOnly = mode === 'tool-only';
|
||||
|
||||
describe('add-gmail skill', () => {
|
||||
it('container-runner mounts ~/.gmail-mcp', () => {
|
||||
expect(read('src/container-runner.ts')).toContain('.gmail-mcp');
|
||||
});
|
||||
|
||||
it('agent-runner has gmail MCP server', () => {
|
||||
const content = read('container/agent-runner/src/index.ts');
|
||||
expect(content).toContain('mcp__gmail__*');
|
||||
expect(content).toContain('@gongrzhe/server-gmail-autoauth-mcp');
|
||||
});
|
||||
|
||||
it.skipIf(channelOnly)('gmail channel file exists', () => {
|
||||
expect(fs.existsSync(path.join(root, 'src/channels/gmail.ts'))).toBe(true);
|
||||
});
|
||||
|
||||
it.skipIf(channelOnly)('config exports GMAIL_CHANNEL_ENABLED', () => {
|
||||
expect(read('src/config.ts')).toContain('GMAIL_CHANNEL_ENABLED');
|
||||
});
|
||||
|
||||
it.skipIf(channelOnly)('index.ts wires up GmailChannel', () => {
|
||||
expect(read('src/index.ts')).toContain('GmailChannel');
|
||||
});
|
||||
|
||||
it.skipIf(channelOnly)('googleapis dependency installed', () => {
|
||||
const pkg = JSON.parse(read('package.json'));
|
||||
expect(pkg.dependencies?.googleapis || pkg.devDependencies?.googleapis).toBeDefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user