mcp-config-ts 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +195 -0
- package/dist/__tests__/config/load.test.d.ts +2 -0
- package/dist/__tests__/config/load.test.d.ts.map +1 -0
- package/dist/__tests__/config/load.test.js +142 -0
- package/dist/__tests__/config/load.test.js.map +1 -0
- package/dist/__tests__/config/manager.test.d.ts +2 -0
- package/dist/__tests__/config/manager.test.d.ts.map +1 -0
- package/dist/__tests__/config/manager.test.js +133 -0
- package/dist/__tests__/config/manager.test.js.map +1 -0
- package/dist/__tests__/config/save.test.d.ts +2 -0
- package/dist/__tests__/config/save.test.d.ts.map +1 -0
- package/dist/__tests__/config/save.test.js +120 -0
- package/dist/__tests__/config/save.test.js.map +1 -0
- package/dist/__tests__/fixtures/fixtures.test.d.ts +2 -0
- package/dist/__tests__/fixtures/fixtures.test.d.ts.map +1 -0
- package/dist/__tests__/fixtures/fixtures.test.js +107 -0
- package/dist/__tests__/fixtures/fixtures.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +2 -0
- package/dist/__tests__/types.test.d.ts.map +1 -0
- package/dist/__tests__/types.test.js +263 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/__tests__/utils/errors.test.d.ts +2 -0
- package/dist/__tests__/utils/errors.test.d.ts.map +1 -0
- package/dist/__tests__/utils/errors.test.js +198 -0
- package/dist/__tests__/utils/errors.test.js.map +1 -0
- package/dist/__tests__/validation/validate.test.d.ts +2 -0
- package/dist/__tests__/validation/validate.test.d.ts.map +1 -0
- package/dist/__tests__/validation/validate.test.js +123 -0
- package/dist/__tests__/validation/validate.test.js.map +1 -0
- package/dist/config/load.d.ts +3 -0
- package/dist/config/load.d.ts.map +1 -0
- package/dist/config/load.js +66 -0
- package/dist/config/load.js.map +1 -0
- package/dist/config/manager.d.ts +3 -0
- package/dist/config/manager.d.ts.map +1 -0
- package/dist/config/manager.js +58 -0
- package/dist/config/manager.js.map +1 -0
- package/dist/config/operations.d.ts +6 -0
- package/dist/config/operations.d.ts.map +1 -0
- package/dist/config/operations.js +26 -0
- package/dist/config/operations.js.map +1 -0
- package/dist/config/save.d.ts +3 -0
- package/dist/config/save.d.ts.map +1 -0
- package/dist/config/save.js +40 -0
- package/dist/config/save.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +28 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +165 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +4 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/errors.d.ts +40 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +74 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/validation/json-syntax.d.ts +3 -0
- package/dist/validation/json-syntax.d.ts.map +1 -0
- package/dist/validation/json-syntax.js +44 -0
- package/dist/validation/json-syntax.js.map +1 -0
- package/dist/validation/schema.d.ts +3 -0
- package/dist/validation/schema.d.ts.map +1 -0
- package/dist/validation/schema.js +76 -0
- package/dist/validation/schema.js.map +1 -0
- package/dist/validation/validate.d.ts +5 -0
- package/dist/validation/validate.d.ts.map +1 -0
- package/dist/validation/validate.js +37 -0
- package/dist/validation/validate.js.map +1 -0
- package/package.json +34 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const fs_1 = require("fs");
|
|
5
|
+
const path_1 = require("path");
|
|
6
|
+
const FIXTURES_DIR = (0, path_1.join)(__dirname);
|
|
7
|
+
function readFixture(name) {
|
|
8
|
+
return (0, fs_1.readFileSync)((0, path_1.join)(FIXTURES_DIR, name), 'utf-8');
|
|
9
|
+
}
|
|
10
|
+
function parseFixture(name) {
|
|
11
|
+
return JSON.parse(readFixture(name));
|
|
12
|
+
}
|
|
13
|
+
(0, vitest_1.describe)('Fixture Files', () => {
|
|
14
|
+
(0, vitest_1.describe)('valid-config.json', () => {
|
|
15
|
+
(0, vitest_1.it)('parses as valid JSON', () => {
|
|
16
|
+
(0, vitest_1.expect)(() => parseFixture('valid-config.json')).not.toThrow();
|
|
17
|
+
});
|
|
18
|
+
(0, vitest_1.it)('has mcpServers key', () => {
|
|
19
|
+
const data = parseFixture('valid-config.json');
|
|
20
|
+
(0, vitest_1.expect)(data).toHaveProperty('mcpServers');
|
|
21
|
+
});
|
|
22
|
+
(0, vitest_1.it)('has exactly 2 server entries', () => {
|
|
23
|
+
const data = parseFixture('valid-config.json');
|
|
24
|
+
(0, vitest_1.expect)(Object.keys(data.mcpServers)).toHaveLength(2);
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.it)('contains filesystem and github entries', () => {
|
|
27
|
+
const data = parseFixture('valid-config.json');
|
|
28
|
+
(0, vitest_1.expect)(data.mcpServers).toHaveProperty('filesystem');
|
|
29
|
+
(0, vitest_1.expect)(data.mcpServers).toHaveProperty('github');
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
(0, vitest_1.describe)('invalid-json.txt', () => {
|
|
33
|
+
(0, vitest_1.it)('is readable and not empty', () => {
|
|
34
|
+
const content = readFixture('invalid-json.txt');
|
|
35
|
+
(0, vitest_1.expect)(content).toBeTruthy();
|
|
36
|
+
(0, vitest_1.expect)(content.length).toBeGreaterThan(0);
|
|
37
|
+
});
|
|
38
|
+
(0, vitest_1.it)('is not valid JSON', () => {
|
|
39
|
+
const content = readFixture('invalid-json.txt');
|
|
40
|
+
(0, vitest_1.expect)(() => JSON.parse(content)).toThrow(SyntaxError);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.describe)('missing-mcpservers.json', () => {
|
|
44
|
+
(0, vitest_1.it)('parses as valid JSON', () => {
|
|
45
|
+
(0, vitest_1.expect)(() => parseFixture('missing-mcpservers.json')).not.toThrow();
|
|
46
|
+
});
|
|
47
|
+
(0, vitest_1.it)('lacks mcpServers key', () => {
|
|
48
|
+
const data = parseFixture('missing-mcpservers.json');
|
|
49
|
+
(0, vitest_1.expect)(data).not.toHaveProperty('mcpServers');
|
|
50
|
+
});
|
|
51
|
+
(0, vitest_1.it)('has other keys', () => {
|
|
52
|
+
const data = parseFixture('missing-mcpservers.json');
|
|
53
|
+
(0, vitest_1.expect)(data).toHaveProperty('other');
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.describe)('mixed-transport.json', () => {
|
|
57
|
+
(0, vitest_1.it)('parses as valid JSON', () => {
|
|
58
|
+
(0, vitest_1.expect)(() => parseFixture('mixed-transport.json')).not.toThrow();
|
|
59
|
+
});
|
|
60
|
+
(0, vitest_1.it)('has a stdio entry (local) with command', () => {
|
|
61
|
+
const data = parseFixture('mixed-transport.json');
|
|
62
|
+
(0, vitest_1.expect)(data.mcpServers.local).toHaveProperty('command');
|
|
63
|
+
(0, vitest_1.expect)(data.mcpServers.local.command).toBe('node');
|
|
64
|
+
});
|
|
65
|
+
(0, vitest_1.it)('has an http entry (remote) with url', () => {
|
|
66
|
+
const data = parseFixture('mixed-transport.json');
|
|
67
|
+
(0, vitest_1.expect)(data.mcpServers.remote).toHaveProperty('url');
|
|
68
|
+
(0, vitest_1.expect)(data.mcpServers.remote.url).toBe('https://mcp.example.com/api');
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.describe)('placeholder-env.json', () => {
|
|
72
|
+
(0, vitest_1.it)('parses as valid JSON', () => {
|
|
73
|
+
(0, vitest_1.expect)(() => parseFixture('placeholder-env.json')).not.toThrow();
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.it)('has ${...} placeholder values in env', () => {
|
|
76
|
+
const data = parseFixture('placeholder-env.json');
|
|
77
|
+
const env = data.mcpServers.service.env;
|
|
78
|
+
(0, vitest_1.expect)(env.API_KEY).toMatch(/^\$\{.+\}$/);
|
|
79
|
+
(0, vitest_1.expect)(env.SECRET).toMatch(/^\$\{.+\}$/);
|
|
80
|
+
});
|
|
81
|
+
(0, vitest_1.it)('API_KEY placeholder is ${API_KEY}', () => {
|
|
82
|
+
const data = parseFixture('placeholder-env.json');
|
|
83
|
+
(0, vitest_1.expect)(data.mcpServers.service.env.API_KEY).toBe('${API_KEY}');
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
(0, vitest_1.describe)('claude-desktop-config.json', () => {
|
|
87
|
+
(0, vitest_1.it)('parses as valid JSON', () => {
|
|
88
|
+
(0, vitest_1.expect)(() => parseFixture('claude-desktop-config.json')).not.toThrow();
|
|
89
|
+
});
|
|
90
|
+
(0, vitest_1.it)('has mcpServers key', () => {
|
|
91
|
+
const data = parseFixture('claude-desktop-config.json');
|
|
92
|
+
(0, vitest_1.expect)(data).toHaveProperty('mcpServers');
|
|
93
|
+
});
|
|
94
|
+
(0, vitest_1.it)('has claude-filesystem entry', () => {
|
|
95
|
+
const data = parseFixture('claude-desktop-config.json');
|
|
96
|
+
(0, vitest_1.expect)(data.mcpServers).toHaveProperty('claude-filesystem');
|
|
97
|
+
});
|
|
98
|
+
(0, vitest_1.it)('claude-filesystem entry has expected command and args', () => {
|
|
99
|
+
const data = parseFixture('claude-desktop-config.json');
|
|
100
|
+
const entry = data.mcpServers['claude-filesystem'];
|
|
101
|
+
(0, vitest_1.expect)(entry.command).toBe('npx');
|
|
102
|
+
(0, vitest_1.expect)(entry.args).toContain('@modelcontextprotocol/server-filesystem');
|
|
103
|
+
(0, vitest_1.expect)(entry.disabled).toBe(false);
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
//# sourceMappingURL=fixtures.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixtures.test.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/fixtures.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
(0, vitest_1.describe)('Type Definitions', () => {
|
|
5
|
+
(0, vitest_1.describe)('StdioServerEntry', () => {
|
|
6
|
+
(0, vitest_1.it)('requires only command and type', () => {
|
|
7
|
+
const entry = { type: 'stdio', command: 'npx' };
|
|
8
|
+
(0, vitest_1.expect)(entry.command).toBe('npx');
|
|
9
|
+
(0, vitest_1.expect)(entry.type).toBe('stdio');
|
|
10
|
+
});
|
|
11
|
+
(0, vitest_1.it)('accepts all optional fields', () => {
|
|
12
|
+
const entry = {
|
|
13
|
+
type: 'stdio',
|
|
14
|
+
command: 'node',
|
|
15
|
+
args: ['server.js'],
|
|
16
|
+
env: { API_KEY: 'abc' },
|
|
17
|
+
cwd: '/tmp',
|
|
18
|
+
disabled: false,
|
|
19
|
+
};
|
|
20
|
+
(0, vitest_1.expect)(entry.args).toEqual(['server.js']);
|
|
21
|
+
(0, vitest_1.expect)(entry.env).toEqual({ API_KEY: 'abc' });
|
|
22
|
+
(0, vitest_1.expect)(entry.cwd).toBe('/tmp');
|
|
23
|
+
(0, vitest_1.expect)(entry.disabled).toBe(false);
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
(0, vitest_1.describe)('HttpServerEntry', () => {
|
|
27
|
+
(0, vitest_1.it)('requires only url and type', () => {
|
|
28
|
+
const entry = { type: 'http', url: 'https://mcp.example.com' };
|
|
29
|
+
(0, vitest_1.expect)(entry.url).toBe('https://mcp.example.com');
|
|
30
|
+
(0, vitest_1.expect)(entry.type).toBe('http');
|
|
31
|
+
});
|
|
32
|
+
(0, vitest_1.it)('accepts optional headers and disabled', () => {
|
|
33
|
+
const entry = {
|
|
34
|
+
type: 'http',
|
|
35
|
+
url: 'https://mcp.example.com',
|
|
36
|
+
headers: { Authorization: 'Bearer token' },
|
|
37
|
+
disabled: true,
|
|
38
|
+
};
|
|
39
|
+
(0, vitest_1.expect)(entry.headers).toEqual({ Authorization: 'Bearer token' });
|
|
40
|
+
(0, vitest_1.expect)(entry.disabled).toBe(true);
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.describe)('ServerEntry union type', () => {
|
|
44
|
+
(0, vitest_1.it)('accepts StdioServerEntry', () => {
|
|
45
|
+
const entry = { type: 'stdio', command: 'npx' };
|
|
46
|
+
(0, vitest_1.expect)(entry.type).toBe('stdio');
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.it)('accepts HttpServerEntry', () => {
|
|
49
|
+
const entry = { type: 'http', url: 'https://example.com' };
|
|
50
|
+
(0, vitest_1.expect)(entry.type).toBe('http');
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
(0, vitest_1.describe)('MCPConfig', () => {
|
|
54
|
+
(0, vitest_1.it)('requires servers and filePath', () => {
|
|
55
|
+
const config = {
|
|
56
|
+
servers: {},
|
|
57
|
+
filePath: '/tmp/.mcp.json',
|
|
58
|
+
};
|
|
59
|
+
(0, vitest_1.expect)(config.servers).toEqual({});
|
|
60
|
+
(0, vitest_1.expect)(config.filePath).toBe('/tmp/.mcp.json');
|
|
61
|
+
});
|
|
62
|
+
(0, vitest_1.it)('accepts _otherKeys', () => {
|
|
63
|
+
const config = {
|
|
64
|
+
servers: {},
|
|
65
|
+
filePath: '/tmp/.mcp.json',
|
|
66
|
+
_otherKeys: { someOtherSetting: true },
|
|
67
|
+
};
|
|
68
|
+
(0, vitest_1.expect)(config._otherKeys).toEqual({ someOtherSetting: true });
|
|
69
|
+
});
|
|
70
|
+
(0, vitest_1.it)('servers map contains ServerEntry values', () => {
|
|
71
|
+
const config = {
|
|
72
|
+
servers: {
|
|
73
|
+
github: { type: 'stdio', command: 'npx', args: ['-y', '@modelcontextprotocol/server-github'] },
|
|
74
|
+
remote: { type: 'http', url: 'https://mcp.example.com' },
|
|
75
|
+
},
|
|
76
|
+
filePath: '.mcp.json',
|
|
77
|
+
};
|
|
78
|
+
(0, vitest_1.expect)(Object.keys(config.servers)).toHaveLength(2);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
81
|
+
(0, vitest_1.describe)('ValidationCheck', () => {
|
|
82
|
+
(0, vitest_1.it)('has required fields id, severity, passed, message', () => {
|
|
83
|
+
const check = {
|
|
84
|
+
id: 'json-syntax',
|
|
85
|
+
severity: 'error',
|
|
86
|
+
passed: true,
|
|
87
|
+
message: 'JSON is valid',
|
|
88
|
+
};
|
|
89
|
+
(0, vitest_1.expect)(check.id).toBe('json-syntax');
|
|
90
|
+
(0, vitest_1.expect)(check.severity).toBe('error');
|
|
91
|
+
(0, vitest_1.expect)(check.passed).toBe(true);
|
|
92
|
+
});
|
|
93
|
+
(0, vitest_1.it)('severity is constrained to error | warning', () => {
|
|
94
|
+
const warnCheck = {
|
|
95
|
+
id: 'placeholder-env',
|
|
96
|
+
severity: 'warning',
|
|
97
|
+
passed: false,
|
|
98
|
+
message: 'Placeholder value detected',
|
|
99
|
+
serverName: 'github',
|
|
100
|
+
suggestion: 'Replace ${GITHUB_TOKEN} with actual value',
|
|
101
|
+
};
|
|
102
|
+
(0, vitest_1.expect)(warnCheck.severity).toBe('warning');
|
|
103
|
+
(0, vitest_1.expect)(warnCheck.serverName).toBe('github');
|
|
104
|
+
});
|
|
105
|
+
});
|
|
106
|
+
(0, vitest_1.describe)('ValidationResult', () => {
|
|
107
|
+
(0, vitest_1.it)('has valid, configPath, checks, summary, completenessScore', () => {
|
|
108
|
+
const result = {
|
|
109
|
+
valid: true,
|
|
110
|
+
configPath: '.mcp.json',
|
|
111
|
+
checks: [],
|
|
112
|
+
summary: { total: 0, passed: 0, failed: 0, warnings: 0 },
|
|
113
|
+
completenessScore: 100,
|
|
114
|
+
};
|
|
115
|
+
(0, vitest_1.expect)(result.valid).toBe(true);
|
|
116
|
+
(0, vitest_1.expect)(result.configPath).toBe('.mcp.json');
|
|
117
|
+
(0, vitest_1.expect)(result.checks).toEqual([]);
|
|
118
|
+
(0, vitest_1.expect)(result.summary.total).toBe(0);
|
|
119
|
+
(0, vitest_1.expect)(result.completenessScore).toBe(100);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
(0, vitest_1.describe)('SyncOptions', () => {
|
|
123
|
+
(0, vitest_1.it)('requires source, target, conflictStrategy, dryRun', () => {
|
|
124
|
+
const opts = {
|
|
125
|
+
source: 'claude-desktop',
|
|
126
|
+
target: '.mcp.json',
|
|
127
|
+
conflictStrategy: 'skip',
|
|
128
|
+
dryRun: false,
|
|
129
|
+
};
|
|
130
|
+
(0, vitest_1.expect)(opts.source).toBe('claude-desktop');
|
|
131
|
+
(0, vitest_1.expect)(opts.conflictStrategy).toBe('skip');
|
|
132
|
+
(0, vitest_1.expect)(opts.dryRun).toBe(false);
|
|
133
|
+
});
|
|
134
|
+
(0, vitest_1.it)('conflictStrategy accepts all three values', () => {
|
|
135
|
+
const skip = 'skip';
|
|
136
|
+
const overwrite = 'overwrite';
|
|
137
|
+
const mergeEnv = 'merge-env';
|
|
138
|
+
(0, vitest_1.expect)(skip).toBe('skip');
|
|
139
|
+
(0, vitest_1.expect)(overwrite).toBe('overwrite');
|
|
140
|
+
(0, vitest_1.expect)(mergeEnv).toBe('merge-env');
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
(0, vitest_1.describe)('SyncResult', () => {
|
|
144
|
+
(0, vitest_1.it)('has all 5 required array/scalar fields plus errors and changed', () => {
|
|
145
|
+
const result = {
|
|
146
|
+
sourcePath: '/source/.mcp.json',
|
|
147
|
+
targetPath: '/target/.mcp.json',
|
|
148
|
+
added: ['github'],
|
|
149
|
+
updated: [],
|
|
150
|
+
skipped: ['filesystem'],
|
|
151
|
+
errors: [],
|
|
152
|
+
changed: true,
|
|
153
|
+
};
|
|
154
|
+
(0, vitest_1.expect)(result.added).toEqual(['github']);
|
|
155
|
+
(0, vitest_1.expect)(result.updated).toEqual([]);
|
|
156
|
+
(0, vitest_1.expect)(result.skipped).toEqual(['filesystem']);
|
|
157
|
+
(0, vitest_1.expect)(result.errors).toEqual([]);
|
|
158
|
+
(0, vitest_1.expect)(result.changed).toBe(true);
|
|
159
|
+
});
|
|
160
|
+
(0, vitest_1.it)('errors array contains serverName and error fields', () => {
|
|
161
|
+
const result = {
|
|
162
|
+
sourcePath: 'a',
|
|
163
|
+
targetPath: 'b',
|
|
164
|
+
added: [],
|
|
165
|
+
updated: [],
|
|
166
|
+
skipped: [],
|
|
167
|
+
errors: [{ serverName: 'badserver', error: 'parse failed' }],
|
|
168
|
+
changed: false,
|
|
169
|
+
};
|
|
170
|
+
(0, vitest_1.expect)(result.errors[0].serverName).toBe('badserver');
|
|
171
|
+
(0, vitest_1.expect)(result.errors[0].error).toBe('parse failed');
|
|
172
|
+
});
|
|
173
|
+
});
|
|
174
|
+
(0, vitest_1.describe)('ServerInfo', () => {
|
|
175
|
+
(0, vitest_1.it)('has name, description, npmPackage, category, source fields', () => {
|
|
176
|
+
const info = {
|
|
177
|
+
name: 'github',
|
|
178
|
+
description: 'GitHub API server',
|
|
179
|
+
npmPackage: '@modelcontextprotocol/server-github',
|
|
180
|
+
category: 'official',
|
|
181
|
+
requiredEnvVars: [{ name: 'GITHUB_TOKEN', description: 'PAT', sensitive: true }],
|
|
182
|
+
source: 'registry',
|
|
183
|
+
};
|
|
184
|
+
(0, vitest_1.expect)(info.name).toBe('github');
|
|
185
|
+
(0, vitest_1.expect)(info.source).toBe('registry');
|
|
186
|
+
});
|
|
187
|
+
(0, vitest_1.it)('source is constrained to registry | npm', () => {
|
|
188
|
+
const fromRegistry = 'registry';
|
|
189
|
+
const fromNpm = 'npm';
|
|
190
|
+
(0, vitest_1.expect)(fromRegistry).toBe('registry');
|
|
191
|
+
(0, vitest_1.expect)(fromNpm).toBe('npm');
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
(0, vitest_1.describe)('ManagerOptions', () => {
|
|
195
|
+
(0, vitest_1.it)('all fields are optional', () => {
|
|
196
|
+
const opts = {};
|
|
197
|
+
(0, vitest_1.expect)(opts.configPath).toBeUndefined();
|
|
198
|
+
(0, vitest_1.expect)(opts.validationLevel).toBeUndefined();
|
|
199
|
+
});
|
|
200
|
+
(0, vitest_1.it)('accepts configPath and validationLevel', () => {
|
|
201
|
+
const opts = { configPath: '.mcp.json', validationLevel: 3 };
|
|
202
|
+
(0, vitest_1.expect)(opts.configPath).toBe('.mcp.json');
|
|
203
|
+
(0, vitest_1.expect)(opts.validationLevel).toBe(3);
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
(0, vitest_1.describe)('DiscoverOptions', () => {
|
|
207
|
+
(0, vitest_1.it)('all fields are optional', () => {
|
|
208
|
+
const opts = {};
|
|
209
|
+
(0, vitest_1.expect)(opts.searchNpm).toBeUndefined();
|
|
210
|
+
(0, vitest_1.expect)(opts.limit).toBeUndefined();
|
|
211
|
+
});
|
|
212
|
+
(0, vitest_1.it)('accepts searchNpm and limit', () => {
|
|
213
|
+
const opts = { searchNpm: true, limit: 10 };
|
|
214
|
+
(0, vitest_1.expect)(opts.searchNpm).toBe(true);
|
|
215
|
+
(0, vitest_1.expect)(opts.limit).toBe(10);
|
|
216
|
+
});
|
|
217
|
+
});
|
|
218
|
+
(0, vitest_1.describe)('ConfigManager interface', () => {
|
|
219
|
+
(0, vitest_1.it)('can be implemented by a mock', async () => {
|
|
220
|
+
const mockConfig = { servers: {}, filePath: '.mcp.json' };
|
|
221
|
+
const mockValidationResult = {
|
|
222
|
+
valid: true,
|
|
223
|
+
configPath: '.mcp.json',
|
|
224
|
+
checks: [],
|
|
225
|
+
summary: { total: 0, passed: 0, failed: 0, warnings: 0 },
|
|
226
|
+
completenessScore: 100,
|
|
227
|
+
};
|
|
228
|
+
const manager = {
|
|
229
|
+
load: async () => { },
|
|
230
|
+
save: async () => { },
|
|
231
|
+
getConfig: () => mockConfig,
|
|
232
|
+
list: () => [],
|
|
233
|
+
get: (_name) => undefined,
|
|
234
|
+
add: (_name, _entry) => { },
|
|
235
|
+
addFromRegistry: (_name, _env) => { },
|
|
236
|
+
remove: (_name) => { },
|
|
237
|
+
validate: async (_opts) => mockValidationResult,
|
|
238
|
+
has: (_name) => false,
|
|
239
|
+
};
|
|
240
|
+
await manager.load();
|
|
241
|
+
(0, vitest_1.expect)(manager.getConfig()).toBe(mockConfig);
|
|
242
|
+
(0, vitest_1.expect)(manager.list()).toEqual([]);
|
|
243
|
+
(0, vitest_1.expect)(manager.has('anything')).toBe(false);
|
|
244
|
+
const validation = await manager.validate({ level: 3 });
|
|
245
|
+
(0, vitest_1.expect)(validation.valid).toBe(true);
|
|
246
|
+
});
|
|
247
|
+
});
|
|
248
|
+
(0, vitest_1.describe)('RegistryEntry', () => {
|
|
249
|
+
(0, vitest_1.it)('has required fields name, description, npmPackage, category, entry, keywords', () => {
|
|
250
|
+
const entry = {
|
|
251
|
+
name: 'github',
|
|
252
|
+
description: 'GitHub API server',
|
|
253
|
+
npmPackage: '@modelcontextprotocol/server-github',
|
|
254
|
+
category: 'official',
|
|
255
|
+
entry: { type: 'stdio', command: 'npx', args: ['-y', '@modelcontextprotocol/server-github'] },
|
|
256
|
+
keywords: ['github', 'git', 'api'],
|
|
257
|
+
};
|
|
258
|
+
(0, vitest_1.expect)(entry.name).toBe('github');
|
|
259
|
+
(0, vitest_1.expect)(entry.keywords).toContain('github');
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
//# sourceMappingURL=types.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.test.js","sourceRoot":"","sources":["../../src/__tests__/types.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/utils/errors.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const errors_1 = require("../../utils/errors");
|
|
5
|
+
(0, vitest_1.describe)('Error Classes', () => {
|
|
6
|
+
(0, vitest_1.describe)('MCPConfigError', () => {
|
|
7
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
8
|
+
const err = new errors_1.MCPConfigError('something went wrong', 'SOME_ERROR');
|
|
9
|
+
(0, vitest_1.expect)(err.name).toBe('MCPConfigError');
|
|
10
|
+
});
|
|
11
|
+
(0, vitest_1.it)('has correct message', () => {
|
|
12
|
+
const err = new errors_1.MCPConfigError('test message', 'TEST_CODE');
|
|
13
|
+
(0, vitest_1.expect)(err.message).toBe('test message');
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.it)('has correct code', () => {
|
|
16
|
+
const err = new errors_1.MCPConfigError('test', 'MY_CODE');
|
|
17
|
+
(0, vitest_1.expect)(err.code).toBe('MY_CODE');
|
|
18
|
+
});
|
|
19
|
+
(0, vitest_1.it)('is an instance of Error', () => {
|
|
20
|
+
const err = new errors_1.MCPConfigError('test', 'CODE');
|
|
21
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(Error);
|
|
22
|
+
});
|
|
23
|
+
(0, vitest_1.it)('is an instance of MCPConfigError', () => {
|
|
24
|
+
const err = new errors_1.MCPConfigError('test', 'CODE');
|
|
25
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
(0, vitest_1.describe)('ConfigNotFoundError', () => {
|
|
29
|
+
const configPath = '/path/to/.mcp.json';
|
|
30
|
+
let err;
|
|
31
|
+
(0, vitest_1.beforeEach)(() => {
|
|
32
|
+
err = new errors_1.ConfigNotFoundError(configPath);
|
|
33
|
+
});
|
|
34
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
35
|
+
(0, vitest_1.expect)(err.name).toBe('ConfigNotFoundError');
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)('exposes configPath', () => {
|
|
38
|
+
(0, vitest_1.expect)(err.configPath).toBe(configPath);
|
|
39
|
+
});
|
|
40
|
+
(0, vitest_1.it)('has code CONFIG_NOT_FOUND', () => {
|
|
41
|
+
(0, vitest_1.expect)(err.code).toBe('CONFIG_NOT_FOUND');
|
|
42
|
+
});
|
|
43
|
+
(0, vitest_1.it)('message contains path', () => {
|
|
44
|
+
(0, vitest_1.expect)(err.message).toContain(configPath);
|
|
45
|
+
});
|
|
46
|
+
(0, vitest_1.it)('is instanceof MCPConfigError', () => {
|
|
47
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.it)('is instanceof Error', () => {
|
|
50
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(Error);
|
|
51
|
+
});
|
|
52
|
+
(0, vitest_1.it)('is instanceof ConfigNotFoundError', () => {
|
|
53
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.ConfigNotFoundError);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
(0, vitest_1.describe)('ConfigParseError', () => {
|
|
57
|
+
const configPath = '/path/to/bad.json';
|
|
58
|
+
let err;
|
|
59
|
+
(0, vitest_1.beforeEach)(() => {
|
|
60
|
+
err = new errors_1.ConfigParseError('Unexpected token at line 1', configPath);
|
|
61
|
+
});
|
|
62
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
63
|
+
(0, vitest_1.expect)(err.name).toBe('ConfigParseError');
|
|
64
|
+
});
|
|
65
|
+
(0, vitest_1.it)('exposes configPath', () => {
|
|
66
|
+
(0, vitest_1.expect)(err.configPath).toBe(configPath);
|
|
67
|
+
});
|
|
68
|
+
(0, vitest_1.it)('has code CONFIG_PARSE_ERROR', () => {
|
|
69
|
+
(0, vitest_1.expect)(err.code).toBe('CONFIG_PARSE_ERROR');
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.it)('is instanceof MCPConfigError', () => {
|
|
72
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
|
|
73
|
+
});
|
|
74
|
+
(0, vitest_1.it)('is instanceof Error', () => {
|
|
75
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(Error);
|
|
76
|
+
});
|
|
77
|
+
(0, vitest_1.it)('accepts optional parseError', () => {
|
|
78
|
+
const syntaxError = new SyntaxError('Unexpected token');
|
|
79
|
+
const errWithParse = new errors_1.ConfigParseError('Failed to parse', configPath, syntaxError);
|
|
80
|
+
(0, vitest_1.expect)(errWithParse.parseError).toBe(syntaxError);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
83
|
+
(0, vitest_1.describe)('ServerExistsError', () => {
|
|
84
|
+
const serverName = 'github';
|
|
85
|
+
let err;
|
|
86
|
+
(0, vitest_1.beforeEach)(() => {
|
|
87
|
+
err = new errors_1.ServerExistsError(serverName);
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
90
|
+
(0, vitest_1.expect)(err.name).toBe('ServerExistsError');
|
|
91
|
+
});
|
|
92
|
+
(0, vitest_1.it)('exposes serverName', () => {
|
|
93
|
+
(0, vitest_1.expect)(err.serverName).toBe(serverName);
|
|
94
|
+
});
|
|
95
|
+
(0, vitest_1.it)('has code SERVER_EXISTS', () => {
|
|
96
|
+
(0, vitest_1.expect)(err.code).toBe('SERVER_EXISTS');
|
|
97
|
+
});
|
|
98
|
+
(0, vitest_1.it)('message contains server name', () => {
|
|
99
|
+
(0, vitest_1.expect)(err.message).toContain(serverName);
|
|
100
|
+
});
|
|
101
|
+
(0, vitest_1.it)('is instanceof MCPConfigError', () => {
|
|
102
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
|
|
103
|
+
});
|
|
104
|
+
(0, vitest_1.it)('is instanceof Error', () => {
|
|
105
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(Error);
|
|
106
|
+
});
|
|
107
|
+
});
|
|
108
|
+
(0, vitest_1.describe)('ServerNotFoundError', () => {
|
|
109
|
+
const serverName = 'missing-server';
|
|
110
|
+
let err;
|
|
111
|
+
(0, vitest_1.beforeEach)(() => {
|
|
112
|
+
err = new errors_1.ServerNotFoundError(serverName);
|
|
113
|
+
});
|
|
114
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
115
|
+
(0, vitest_1.expect)(err.name).toBe('ServerNotFoundError');
|
|
116
|
+
});
|
|
117
|
+
(0, vitest_1.it)('exposes serverName', () => {
|
|
118
|
+
(0, vitest_1.expect)(err.serverName).toBe(serverName);
|
|
119
|
+
});
|
|
120
|
+
(0, vitest_1.it)('has code SERVER_NOT_FOUND', () => {
|
|
121
|
+
(0, vitest_1.expect)(err.code).toBe('SERVER_NOT_FOUND');
|
|
122
|
+
});
|
|
123
|
+
(0, vitest_1.it)('message contains server name', () => {
|
|
124
|
+
(0, vitest_1.expect)(err.message).toContain(serverName);
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.it)('is instanceof MCPConfigError', () => {
|
|
127
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
|
|
128
|
+
});
|
|
129
|
+
(0, vitest_1.it)('is instanceof Error', () => {
|
|
130
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(Error);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
(0, vitest_1.describe)('ValidationError', () => {
|
|
134
|
+
const errors = ['mcpServers key is missing', 'command is required for stdio entry'];
|
|
135
|
+
let err;
|
|
136
|
+
(0, vitest_1.beforeEach)(() => {
|
|
137
|
+
err = new errors_1.ValidationError('Config validation failed', errors);
|
|
138
|
+
});
|
|
139
|
+
(0, vitest_1.it)('has correct name', () => {
|
|
140
|
+
(0, vitest_1.expect)(err.name).toBe('ValidationError');
|
|
141
|
+
});
|
|
142
|
+
(0, vitest_1.it)('exposes errors array', () => {
|
|
143
|
+
(0, vitest_1.expect)(err.errors).toEqual(errors);
|
|
144
|
+
});
|
|
145
|
+
(0, vitest_1.it)('has code VALIDATION_ERROR', () => {
|
|
146
|
+
(0, vitest_1.expect)(err.code).toBe('VALIDATION_ERROR');
|
|
147
|
+
});
|
|
148
|
+
(0, vitest_1.it)('errors array is accessible and contains expected items', () => {
|
|
149
|
+
(0, vitest_1.expect)(err.errors).toHaveLength(2);
|
|
150
|
+
(0, vitest_1.expect)(err.errors[0]).toBe('mcpServers key is missing');
|
|
151
|
+
});
|
|
152
|
+
(0, vitest_1.it)('is instanceof MCPConfigError', () => {
|
|
153
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(errors_1.MCPConfigError);
|
|
154
|
+
});
|
|
155
|
+
(0, vitest_1.it)('is instanceof Error', () => {
|
|
156
|
+
(0, vitest_1.expect)(err).toBeInstanceOf(Error);
|
|
157
|
+
});
|
|
158
|
+
(0, vitest_1.it)('accepts optional result', () => {
|
|
159
|
+
const mockResult = {
|
|
160
|
+
valid: false,
|
|
161
|
+
configPath: '.mcp.json',
|
|
162
|
+
checks: [],
|
|
163
|
+
summary: { total: 1, passed: 0, failed: 1, warnings: 0 },
|
|
164
|
+
completenessScore: 0,
|
|
165
|
+
};
|
|
166
|
+
const errWithResult = new errors_1.ValidationError('Validation failed', errors, mockResult);
|
|
167
|
+
(0, vitest_1.expect)(errWithResult.result).toBe(mockResult);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
(0, vitest_1.describe)('instanceof chain for all subclasses', () => {
|
|
171
|
+
(0, vitest_1.it)('ConfigNotFoundError instanceof MCPConfigError AND Error', () => {
|
|
172
|
+
const e = new errors_1.ConfigNotFoundError('/tmp/.mcp.json');
|
|
173
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
|
|
174
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(Error);
|
|
175
|
+
});
|
|
176
|
+
(0, vitest_1.it)('ConfigParseError instanceof MCPConfigError AND Error', () => {
|
|
177
|
+
const e = new errors_1.ConfigParseError('bad json', '/tmp/bad.json');
|
|
178
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
|
|
179
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(Error);
|
|
180
|
+
});
|
|
181
|
+
(0, vitest_1.it)('ServerExistsError instanceof MCPConfigError AND Error', () => {
|
|
182
|
+
const e = new errors_1.ServerExistsError('github');
|
|
183
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
|
|
184
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(Error);
|
|
185
|
+
});
|
|
186
|
+
(0, vitest_1.it)('ServerNotFoundError instanceof MCPConfigError AND Error', () => {
|
|
187
|
+
const e = new errors_1.ServerNotFoundError('missing');
|
|
188
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
|
|
189
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(Error);
|
|
190
|
+
});
|
|
191
|
+
(0, vitest_1.it)('ValidationError instanceof MCPConfigError AND Error', () => {
|
|
192
|
+
const e = new errors_1.ValidationError('failed', []);
|
|
193
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(errors_1.MCPConfigError);
|
|
194
|
+
(0, vitest_1.expect)(e).toBeInstanceOf(Error);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
197
|
+
});
|
|
198
|
+
//# sourceMappingURL=errors.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.test.js","sourceRoot":"","sources":["../../../src/__tests__/utils/errors.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/validation/validate.test.ts"],"names":[],"mappings":""}
|