test-print-task.js 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. // 测试打印任务创建和状态
  2. const { DataSource } = require('typeorm');
  3. const { PrintTaskService } = require('./packages/feie-printer-module-mt/dist/services/print-task.service');
  4. const { PrintStatus } = require('./packages/feie-printer-module-mt/dist/types/feie.types');
  5. async function testPrintTaskCreation() {
  6. console.log('测试打印任务创建...');
  7. // 模拟配置
  8. const feieConfig = {
  9. user: 'test@example.com',
  10. ukey: 'test-ukey',
  11. baseUrl: 'https://api.feieyun.cn/Api/Open/',
  12. timeout: 10000,
  13. maxRetries: 3
  14. };
  15. // 创建数据源(简化版)
  16. const dataSource = new DataSource({
  17. type: 'postgres',
  18. host: '127.0.0.1',
  19. port: 5432,
  20. username: 'postgres',
  21. password: '',
  22. database: 'postgres',
  23. synchronize: false,
  24. logging: false
  25. });
  26. try {
  27. await dataSource.initialize();
  28. console.log('数据库连接成功');
  29. const printTaskService = new PrintTaskService(dataSource, feieConfig);
  30. // 测试1: 创建延迟为0的任务
  31. console.log('\n测试1: 创建delaySeconds=0的任务');
  32. const task1 = await printTaskService.createPrintTask(1, {
  33. orderId: 999,
  34. printerSn: 'TEST123',
  35. content: '测试打印内容',
  36. printType: 'RECEIPT',
  37. delaySeconds: 0
  38. });
  39. console.log('任务1状态:', task1.printStatus);
  40. console.log('任务1计划时间:', task1.scheduledAt);
  41. console.log('预期状态: DELAYED');
  42. console.log('实际状态:', task1.printStatus === PrintStatus.DELAYED ? '✓ 正确' : '✗ 错误');
  43. // 测试2: 创建延迟为120秒的任务
  44. console.log('\n测试2: 创建delaySeconds=120的任务');
  45. const task2 = await printTaskService.createPrintTask(1, {
  46. orderId: 1000,
  47. printerSn: 'TEST456',
  48. content: '测试延迟打印内容',
  49. printType: 'RECEIPT',
  50. delaySeconds: 120
  51. });
  52. console.log('任务2状态:', task2.printStatus);
  53. console.log('任务2计划时间:', task2.scheduledAt);
  54. console.log('预期状态: DELAYED');
  55. console.log('实际状态:', task2.printStatus === PrintStatus.DELAYED ? '✓ 正确' : '✗ 错误');
  56. // 测试3: 创建未指定delaySeconds的任务
  57. console.log('\n测试3: 创建未指定delaySeconds的任务');
  58. const task3 = await printTaskService.createPrintTask(1, {
  59. orderId: 1001,
  60. printerSn: 'TEST789',
  61. content: '测试未指定延迟内容',
  62. printType: 'RECEIPT'
  63. // 不指定delaySeconds
  64. });
  65. console.log('任务3状态:', task3.printStatus);
  66. console.log('任务3计划时间:', task3.scheduledAt);
  67. console.log('预期状态: DELAYED');
  68. console.log('实际状态:', task3.printStatus === PrintStatus.DELAYED ? '✓ 正确' : '✗ 错误');
  69. console.log('\n所有测试完成');
  70. } catch (error) {
  71. console.error('测试失败:', error);
  72. } finally {
  73. await dataSource.destroy();
  74. }
  75. }
  76. // 运行测试
  77. testPrintTaskCreation().catch(console.error);