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
JavaScript
/**
* 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 };