UNPKG

bugger-mcp

Version:

MCP Server for managing bugs, feature requests, and improvements

85 lines 3.67 kB
// Tests for status normalization utilities import { StatusNormalizer, validateAndNormalizeStatus } from './status-utils.js'; export class StatusUtilsTester { static runTests() { console.log('Running Status Utils Tests...\n'); this.testBugStatusNormalization(); this.testFeatureStatusNormalization(); this.testImprovementStatusNormalization(); this.testErrorHandling(); console.log('All status utils tests completed!'); } static testBugStatusNormalization() { console.log('Test: Bug Status Normalization'); const testCases = [ ['in progress', 'In Progress'], ['In Progress', 'In Progress'], ['IN PROGRESS', 'In Progress'], ['working', 'In Progress'], ['done', 'Fixed'], ['completed', 'Fixed'], ['open', 'Open'], ['new', 'Open'], ['invalid', null] ]; for (const [input, expected] of testCases) { const result = StatusNormalizer.normalizeStatus(input, 'bug'); const status = result === expected ? '✓' : '✗'; console.log(` ${status} "${input}" → "${result}" (expected: "${expected}")`); } console.log(''); } static testFeatureStatusNormalization() { console.log('Test: Feature Status Normalization'); const testCases = [ ['in development', 'In Development'], ['working', 'In Development'], ['building', 'In Development'], ['done', 'Completed'], ['approved', 'Approved'], ['research', 'Research Phase'], ['invalid', null] ]; for (const [input, expected] of testCases) { const result = StatusNormalizer.normalizeStatus(input, 'feature'); const status = result === expected ? '✓' : '✗'; console.log(` ${status} "${input}" → "${result}" (expected: "${expected}")`); } console.log(''); } static testImprovementStatusNormalization() { console.log('Test: Improvement Status Normalization'); const testCases = [ ['in development', 'In Development'], ['implementing', 'In Development'], ['verified', 'Completed'], ['awaiting verification', 'Completed (Awaiting Human Verification)'], ['pending verification', 'Completed (Awaiting Human Verification)'], ['invalid', null] ]; for (const [input, expected] of testCases) { const result = StatusNormalizer.normalizeStatus(input, 'improvement'); const status = result === expected ? '✓' : '✗'; console.log(` ${status} "${input}" → "${result}" (expected: "${expected}")`); } console.log(''); } static testErrorHandling() { console.log('Test: Error Handling and Suggestions'); const result = validateAndNormalizeStatus('invalid status', 'bug'); console.log(` Input: "invalid status"`); console.log(` Status: ${result.status}`); console.log(` Error: ${result.error}`); console.log(` Suggestion: ${result.suggestion}`); const validResult = validateAndNormalizeStatus('working', 'bug'); console.log(`\n Input: "working"`); console.log(` Status: ${validResult.status}`); console.log(` Error: ${validResult.error}`); console.log(''); } } // Run tests if this file is executed directly if (import.meta.url === `file://${process.argv[1]}`) { StatusUtilsTester.runTests(); } //# sourceMappingURL=status-utils.test.js.map