UNPKG

url-builder-mcp

Version:

URL Builder MCP Server - Professional URL construction with intelligent parameter handling for Claude Desktop

70 lines (54 loc) 2.47 kB
#!/usr/bin/env node /** * Smart script to fix hardcoded dates in tests with future dates * Uses DRY principles to update all test files intelligently */ const fs = require('fs'); const path = require('path'); // Generate future dates for testing function generateFutureDates(daysFromNow = 30, stayDuration = 2) { const checkIn = new Date(); checkIn.setDate(checkIn.getDate() + daysFromNow); const checkOut = new Date(checkIn); checkOut.setDate(checkOut.getDate() + stayDuration); return { checkIn: checkIn.toISOString().split('T')[0], checkOut: checkOut.toISOString().split('T')[0], }; } function fixTestFile(filePath) { let content = fs.readFileSync(filePath, 'utf8'); // Generate future dates const dates = generateFutureDates(); const altDates = generateFutureDates(35, 4); // Alternative dates for variety // Replace common patterns intelligently content = content.replace(/checkIn: '2024-06-01'/g, `checkIn: '${dates.checkIn}'`); content = content.replace(/checkOut: '2024-06-03'/g, `checkOut: '${dates.checkOut}'`); content = content.replace(/checkIn: '2024-01-20'/g, `checkIn: '${altDates.checkIn}'`); content = content.replace(/checkOut: '2024-01-24'/g, `checkOut: '${altDates.checkOut}'`); // Replace standalone date strings content = content.replace(/'2024-06-01'/g, `'${dates.checkIn}'`); content = content.replace(/'2024-06-03'/g, `'${dates.checkOut}'`); content = content.replace(/'2024-01-20'/g, `'${altDates.checkIn}'`); content = content.replace(/'2024-01-24'/g, `'${altDates.checkOut}'`); // Fix expected URLs in tests content = content.replace(/checkIn=2024-06-01/g, `checkIn=${dates.checkIn}`); content = content.replace(/checkOut=2024-06-03/g, `checkOut=${dates.checkOut}`); content = content.replace(/checkIn=2024-01-20/g, `checkIn=${altDates.checkIn}`); content = content.replace(/checkOut=2024-01-24/g, `checkOut=${altDates.checkOut}`); // Fix hash fragment URLs content = content.replace(/checkin=2024-06-01/g, `checkin=${dates.checkIn}`); content = content.replace(/checkout=2024-06-03/g, `checkout=${dates.checkOut}`); fs.writeFileSync(filePath, content, 'utf8'); } function main() { const testFile = path.join(__dirname, '..', 'src', '__tests__', 'urlBuilder.test.ts'); if (fs.existsSync(testFile)) { fixTestFile(testFile); } } // Run if called directly if (require.main === module) { main(); } module.exports = { fixTestFile, generateFutureDates };