waterFacilityQuery.test.mjs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import test from 'node:test'
  2. import assert from 'node:assert/strict'
  3. import {
  4. buildWaterFacilityQuery,
  5. getRequestErrorMessage,
  6. normalizePipeStatus
  7. } from '../src/utils/waterFacilityQuery.js'
  8. test('buildWaterFacilityQuery maps date range to top-level backend contract', () => {
  9. const source = { pageNum: 2, pageSize: 20, pipeCode: 'P-1' }
  10. const query = buildWaterFacilityQuery(source, ['2026-01-01 00:00:00', '2026-01-31 23:59:59'])
  11. assert.deepEqual(query, {
  12. pageNum: 2,
  13. pageSize: 20,
  14. pipeCode: 'P-1',
  15. startTime: '2026-01-01 00:00:00',
  16. endTime: '2026-01-31 23:59:59'
  17. })
  18. assert.deepEqual(source, { pageNum: 2, pageSize: 20, pipeCode: 'P-1' })
  19. assert.equal(query.params, undefined)
  20. })
  21. test('buildWaterFacilityQuery removes stale dates when range is cleared', () => {
  22. const query = buildWaterFacilityQuery({ pageNum: 1, startTime: 'old', endTime: 'old' }, [])
  23. assert.equal(query.startTime, undefined)
  24. assert.equal(query.endTime, undefined)
  25. assert.equal(query.beginTime, undefined)
  26. assert.equal(query.params, undefined)
  27. })
  28. test('normalizePipeStatus accepts numeric and string status values', () => {
  29. assert.equal(normalizePipeStatus(0), '0')
  30. assert.equal(normalizePipeStatus('1'), '1')
  31. assert.equal(normalizePipeStatus(null), '')
  32. })
  33. test('getRequestErrorMessage exposes a useful server error', () => {
  34. assert.equal(getRequestErrorMessage({ response: { data: { msg: '数据库不可用' } } }, '查询失败'), '数据库不可用')
  35. assert.equal(getRequestErrorMessage(new Error('网络断开'), '查询失败'), '网络断开')
  36. assert.equal(getRequestErrorMessage({}, '查询失败'), '查询失败')
  37. })