Skip to main content
Glama
ignorePatterns.test.ts3.82 kB
import { describe, expect, it } from 'vitest' import { generateIgnorePatterns } from '../../src/tools/readSymbol.js' interface TestCase { description: string input: string[] expected: string[] } describe('readSymbol tool', () => { describe('generateIgnorePatterns function', () => { const NEGATIVE_FILES = '!**/{*.test.*,*.spec.*,_*,*.min.*}' const testCases: TestCase[] = [ { description: 'Should ignore all default directories when none specified', input: ['src/**/*.ts'], expected: [ NEGATIVE_FILES, '!{node_modules,.git,test,tests,examples,runtime}/**', '!dist/**', '!build/**', '!out/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should NOT ignore node_modules when explicitly included', input: ['src/**/*.ts', 'node_modules/@types/**/*.d.ts'], expected: [ NEGATIVE_FILES, '!{.git,test,tests,examples,runtime}/**', '!dist/**', '!build/**', '!out/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should NOT ignore dist when explicitly included', input: ['dist/assets/**/*.js'], expected: [ NEGATIVE_FILES, '!{node_modules,.git,test,tests,examples,runtime}/**', '!build/**', '!out/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should only ignore directories not explicitly requested', input: ['node_modules/', 'dist/', 'build/'], expected: [ NEGATIVE_FILES, '!{.git,test,tests,examples,runtime}/**', '!out/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should ignore files and remaining directories when most directories explicitly requested', input: ['node_modules/', 'dist/', 'build/', 'out/', '.git/'], expected: [ NEGATIVE_FILES, '!{test,tests,examples,runtime}/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should ignore files and remaining directories when most directories explicitly requested', input: ['node_modules/', 'dist/', 'build/', 'out/', '.git/', '*/**/bin', '*/**/scripts'], expected: [ NEGATIVE_FILES, '!{test,tests,examples,runtime}/**', ], }, { description: 'Should ignore all when no ignored dirs mentioned except test is included', input: ['src/**/*.ts', 'test/**/*.ts', 'docs/**/*.md'], expected: [ NEGATIVE_FILES, '!{node_modules,.git,tests,examples,runtime}/**', '!dist/**', '!build/**', '!out/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should ignore all default directories when using current directory pattern "."', input: ['.'], expected: [ NEGATIVE_FILES, '!{node_modules,.git,test,tests,examples,runtime}/**', '!dist/**', '!build/**', '!out/**', '!{*/**/bin,*/**/scripts}', ], }, { description: 'Should NOT ignore **/bin when explicitly included with glob pattern', input: ['src/**/*.ts', '*/**/bin/**/*.js'], expected: [ NEGATIVE_FILES, '!{node_modules,.git,test,tests,examples,runtime}/**', '!dist/**', '!build/**', '!out/**', '!{*/**/scripts}', ], }, ] testCases.forEach((testCase) => { it(testCase.description, () => { const result = generateIgnorePatterns(testCase.input) expect(result).toEqual(testCase.expected) }) }) }) })

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flesler/mcp-tools'

If you have feedback or need assistance with the MCP directory API, please join our Discord server