waterSupplyMonitoring.test.mjs 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import assert from 'node:assert/strict'
  2. import {
  3. buildMonitoringQuery,
  4. buildTrendQuery,
  5. formatMonitoringDateTime
  6. } from '../src/utils/waterSupplyMonitoringQuery.js'
  7. import {
  8. normalizeMonitoringRecord,
  9. readMonitoringExportError
  10. } from '../src/utils/waterSupplyModel.js'
  11. const query = {
  12. pageNum: 2,
  13. pageSize: 20,
  14. equipmentName: '测试流量点',
  15. equipmentCode: '',
  16. equipmentLocation: '测试大道',
  17. timeRange: [new Date(2026, 8, 1, 8, 30, 5), '2026-09-01 12:00:00'],
  18. flowMin: '20',
  19. flowMax: 40
  20. }
  21. assert.deepEqual(buildMonitoringQuery(query, 'flowMin', 'flowMax'), {
  22. pageNum: 2,
  23. pageSize: 20,
  24. equipmentName: '测试流量点',
  25. equipmentLocation: '测试大道',
  26. startTime: '2026-09-01 08:30:05',
  27. endTime: '2026-09-01 12:00:00',
  28. flowMin: 20,
  29. flowMax: 40
  30. })
  31. assert.deepEqual(buildMonitoringQuery({}, 'pressureMin', 'pressureMax'), {
  32. pageNum: 1,
  33. pageSize: 10
  34. })
  35. assert.deepEqual(buildMonitoringQuery({ powerMin: 'not-number' }, 'powerMin', 'powerMax'), {
  36. pageNum: 1,
  37. pageSize: 10
  38. })
  39. assert.deepEqual(buildTrendQuery(['2026-09-01 08:00:00']), {
  40. startTime: '2026-09-01 08:00:00'
  41. })
  42. assert.deepEqual(buildTrendQuery(), {})
  43. assert.equal(formatMonitoringDateTime(new Date(2026, 8, 1, 8, 30, 5)), '2026-09-01 08:30:05')
  44. assert.equal(formatMonitoringDateTime(' '), undefined)
  45. const trendPoint = normalizeMonitoringRecord({
  46. equipmentId: 'water-flow-device',
  47. equipmentName: '供水流量监测点',
  48. time: '2026-09-01 12:30:00',
  49. value: '25.5'
  50. }, 'flow', '流量监测')
  51. assert.equal(trendPoint.updateTime, '2026-09-01 12:30:00')
  52. assert.equal(trendPoint.value, 25.5)
  53. const exportError = await readMonitoringExportError(
  54. new Blob(['{"code":500,"msg":"导出数据过多"}'], {type: 'application/json'})
  55. )
  56. const validExport = await readMonitoringExportError(
  57. new Blob(['xlsx'], {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'})
  58. )
  59. assert.equal(exportError, '导出数据过多')
  60. assert.equal(validExport, null)
  61. console.log('waterSupplyMonitoring tests passed')