candlestick-chart-generator
Version:
A Node.js library for generating candlestick chart screenshots using financial data
74 lines (65 loc) • 2.69 kB
JavaScript
const CandlestickChartGeneratorCanvas = require('../index_canvas');
async function testCanvasCharts() {
const generator = new CandlestickChartGeneratorCanvas();
try {
console.log('=== Testing Canvas-based Candlestick Chart Generator ===\n');
// Test 1: AAPL Daily Chart
console.log('1. Generating AAPL daily chart with Canvas...');
await generator.generateChartScreenshot({
symbol: 'AAPL',
interval: '1d',
startDate: '2023-01-01',
endDate: '2023-12-31',
outputPath: 'examples/aapl_daily_canvas.png',
width: 1000,
height: 500
});
console.log('✅ AAPL daily chart saved to examples/aapl_daily_canvas.png\n');
// Test 2: BTC-USD Hourly Chart
console.log('2. Generating BTC-USD hourly chart with Canvas...');
const oneWeekAgo = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000);
await generator.generateChartScreenshot({
symbol: 'BTC-USD',
interval: '1h',
startDate: oneWeekAgo,
endDate: new Date(),
outputPath: 'examples/btc_hourly_canvas.png',
width: 1200,
height: 600
});
console.log('✅ BTC-USD hourly chart saved to examples/btc_hourly_canvas.png\n');
// Test 3: EURUSD 1-minute Chart
console.log('3. Generating EURUSD 1-minute chart with Canvas...');
const oneDayAgo = new Date(Date.now() - 24 * 60 * 60 * 1000);
await generator.generateChartScreenshot({
symbol: 'EURUSD=X',
interval: '1m',
startDate: oneDayAgo,
endDate: new Date(),
outputPath: 'examples/eurusd_1m_canvas.png',
width: 1200,
height: 600
});
console.log('✅ EURUSD 1-minute chart saved to examples/eurusd_1m_canvas.png\n');
// Test 4: Generate chart as base64 data
console.log('4. Generating chart as base64 data with Canvas...');
const base64Data = await generator.generateChartBase64({
symbol: 'TSLA',
interval: '1d',
startDate: '2023-06-01',
endDate: '2023-12-31',
width: 800,
height: 400
});
console.log(`✅ TSLA chart generated as base64 (${base64Data.length} characters)\n`);
console.log('🎉 All Canvas chart tests completed successfully!');
} catch (error) {
console.error('❌ Error:', error.message);
console.error('Stack trace:', error.stack);
} finally {
// Clean up
await generator.close();
}
}
// Run the tests
testCanvasCharts();