|
|
@@ -0,0 +1,32 @@
|
|
|
+import { describe, expect, test } from 'bun:test';
|
|
|
+import { parseList } from './agent-mcps';
|
|
|
+
|
|
|
+describe('parseList', () => {
|
|
|
+ test('empty list returns empty array', () => {
|
|
|
+ expect(parseList([], ['mcp1', 'mcp2'])).toEqual([]);
|
|
|
+ });
|
|
|
+
|
|
|
+ test('wildcard includes all available', () => {
|
|
|
+ expect(parseList(['*'], ['mcp1', 'mcp2', 'mcp3'])).toEqual(['mcp1', 'mcp2', 'mcp3']);
|
|
|
+ });
|
|
|
+
|
|
|
+ test('wildcard with exclusions', () => {
|
|
|
+ expect(parseList(['*', '!mcp2'], ['mcp1', 'mcp2', 'mcp3'])).toEqual(['mcp1', 'mcp3']);
|
|
|
+ });
|
|
|
+
|
|
|
+ test('exclude wildcard returns empty', () => {
|
|
|
+ expect(parseList(['!*'], ['mcp1', 'mcp2'])).toEqual([]);
|
|
|
+ });
|
|
|
+
|
|
|
+ test('specific items only', () => {
|
|
|
+ expect(parseList(['mcp1', 'mcp3'], ['mcp1', 'mcp2', 'mcp3', 'mcp4'])).toEqual(['mcp1', 'mcp3']);
|
|
|
+ });
|
|
|
+
|
|
|
+ test('specific items with exclusions', () => {
|
|
|
+ expect(parseList(['mcp1', 'mcp3', '!mcp3'], ['mcp1', 'mcp2', 'mcp3'])).toEqual(['mcp1']);
|
|
|
+ });
|
|
|
+
|
|
|
+ test('exclusions without matching allows', () => {
|
|
|
+ expect(parseList(['!mcp2'], ['mcp1', 'mcp2', 'mcp3'])).toEqual([]);
|
|
|
+ });
|
|
|
+});
|