import fetch from 'node-fetch'; /** * 测试前端导出功能复刻API */ async function testFrontendExportReplication() { const baseUrl = 'http://localhost:3001'; // 测试用的认证token(需要替换为实际的token) const authToken = 'your-auth-token-here'; // 测试数据 const testData = { pptId: 'test-ppt-id', slideIndex: 0, format: 'jpeg', quality: 0.9, width: 1600, height: 900, ignoreWebfont: true, backgroundColor: '#ffffff', pixelRatio: 1 }; console.log('🧪 Testing Frontend Export Replication API...'); try { // 测试单个幻灯片导出 console.log('\n1. Testing single slide export...'); const singleResponse = await fetch(`${baseUrl}/api/export/frontend-replicate-single`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${authToken}` }, body: JSON.stringify(testData) }); if (singleResponse.ok) { const singleResult = await singleResponse.json(); console.log('✅ Single export success:', { linkId: singleResult.linkId, imageUrl: singleResult.imageUrl, downloadUrl: singleResult.downloadUrl }); } else { const error = await singleResponse.text(); console.log('❌ Single export failed:', singleResponse.status, error); } // 测试批量导出 console.log('\n2. Testing batch export...'); const batchData = { ...testData, rangeType: 'all' }; const batchResponse = await fetch(`${baseUrl}/api/export/frontend-replicate-batch`, { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${authToken}` }, body: JSON.stringify(batchData) }); if (batchResponse.ok) { const batchResult = await batchResponse.json(); console.log('✅ Batch export success:', { totalSlides: batchResult.totalSlides, successCount: batchResult.successCount, errorCount: batchResult.errorCount, resultsCount: batchResult.results?.length || 0 }); } else { const error = await batchResponse.text(); console.log('❌ Batch export failed:', batchResponse.status, error); } } catch (error) { console.error('🚨 Test failed with error:', error.message); } } // 运行测试 if (import.meta.url === `file://${process.argv[1]}`) { testFrontendExportReplication(); } export { testFrontendExportReplication };