Skip to main content
Glama
test-complexity.js2.42 kB
/** * Manual test for the enhanced complexity rule */ const { Linter } = require('eslint'); const enhancedComplexityRule = require('./enhanced-complexity'); // Create a new linter const linter = new Linter(); // Example code to test const testCases = [ { name: "Simple function", code: "function simple() { return true; }", options: [2], expectedErrors: 0 }, { name: "Function with one if", code: "function oneIf(a) { if (a) { return 1; } return 2; }", options: [2], expectedErrors: 0 }, { name: "Function with two ifs", code: "function twoIfs(a, b) { if (a) { return 1; } if (b) { return 2; } return 3; }", options: [2], expectedErrors: 1 }, { name: "Function with logical AND", code: "function ifWithAnd(a, b) { if (a && b) { return true; } return false; }", options: [2], expectedErrors: 1 }, { name: "Function with ternary", code: "function ternary(a, b) { return a ? b ? true : false : false; }", options: [2], expectedErrors: 1 } ]; // Configure ESLint with flat config format const createConfig = (threshold) => [ { plugins: { "custom-rules": { rules: { "enhanced-complexity": enhancedComplexityRule } } }, rules: { "custom-rules/enhanced-complexity": [2, threshold] }, languageOptions: { ecmaVersion: 2020 } } ]; // Run tests let passedTests = 0; let failedTests = 0; for (const testCase of testCases) { const config = createConfig(testCase.options[0]); const messages = linter.verify(testCase.code, config); const complexityErrors = messages.filter(m => m.ruleId === "custom-rules/enhanced-complexity"); console.log(`\nTest: ${testCase.name}`); console.log(`Code: ${testCase.code}`); console.log(`Expected errors: ${testCase.expectedErrors}`); console.log(`Actual errors: ${complexityErrors.length}`); if (complexityErrors.length > 0) { console.log(`Error message: ${complexityErrors[0].message}`); } if (complexityErrors.length === testCase.expectedErrors) { console.log("✅ Test passed"); passedTests++; } else { console.log("❌ Test failed"); failedTests++; } } console.log(`\nResults: ${passedTests} passed, ${failedTests} failed`); if (failedTests === 0) { console.log("All tests passed!"); } else { console.error("Some tests failed!"); process.exit(1); }

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/tbreeding/jira-mcp'

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