check-oa-upload-file-type.mjs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. /**
  2. * 轻量断言:OA 上传控件图片/非图片判定(tsx 直接跑 TypeScript 源码)
  3. * 用法:pnpm exec tsx scripts/check-oa-upload-file-type.mjs
  4. */
  5. import assert from 'node:assert/strict'
  6. import {
  7. isOaUploadImageFile,
  8. isOaUploadVideoFile,
  9. getOaUploadDisplayName,
  10. formatOaUploadPathsForPrint,
  11. formatOaPrintAttachmentText
  12. } from '../src/utils/oa-upload-file-type.ts'
  13. assert.equal(isOaUploadImageFile({ name: 'a.png', url: 'https://x/a.png' }), true)
  14. assert.equal(isOaUploadImageFile({ name: 'a.PDF', url: 'https://x/a.PDF' }), false)
  15. assert.equal(isOaUploadImageFile({ name: 'x.docx', url: 'https://cdn/x.docx' }), false)
  16. assert.equal(isOaUploadImageFile({ name: 'blob', url: 'blob:http://localhost/1', raw: { type: 'image/jpeg' } }), true)
  17. assert.equal(isOaUploadImageFile({ name: 'report.xlsx', url: 'https://cdn/report.xlsx' }), false)
  18. assert.equal(isOaUploadVideoFile({ name: 'a.mp4', url: 'https://x/a.mp4' }), true)
  19. assert.equal(isOaUploadVideoFile({ name: 'a.pdf', url: 'https://x/a.pdf' }), false)
  20. assert.equal(getOaUploadDisplayName({ name: '合同.pdf', url: 'https://x/path/合同.pdf' }), '合同.pdf')
  21. assert.equal(getOaUploadDisplayName({ url: 'https://x/path/only-url.docx' }), 'only-url.docx')
  22. assert.equal(
  23. getOaUploadDisplayName({
  24. url: '/minio/zkxw/oa-approval/202608/10/5691c39340f646afa55b750a1aa0ccc2.png'
  25. }),
  26. '5691c39340f646afa55b750a1aa0ccc2.png'
  27. )
  28. assert.deepEqual(
  29. formatOaUploadPathsForPrint(
  30. '/minio/zkxw/oa-approval/202608/10/5691c39340f646afa55b750a1aa0ccc2.png'
  31. ),
  32. ['5691c39340f646afa55b750a1aa0ccc2.png']
  33. )
  34. assert.deepEqual(
  35. formatOaUploadPathsForPrint([
  36. '/minio/zkxw/oa-approval/202608/10/5691c39340f646afa55b750a1aa0ccc2.png',
  37. { name: '合同.pdf', url: '/minio/zkxw/oa-approval/202608/10/abc.pdf' }
  38. ]),
  39. ['5691c39340f646afa55b750a1aa0ccc2.png', '合同.pdf']
  40. )
  41. assert.deepEqual(formatOaUploadPathsForPrint(''), [])
  42. assert.deepEqual(formatOaUploadPathsForPrint(null), [])
  43. assert.equal(
  44. formatOaPrintAttachmentText(
  45. '/minio/zkxw/oa-approval/202608/10/5691c39340f646afa55b750a1aa0ccc2.png'
  46. ),
  47. '5691c39340f646afa55b750a1aa0ccc2.png'
  48. )
  49. assert.equal(
  50. formatOaPrintAttachmentText(
  51. '/minio/a.png、/minio/b.pdf'
  52. ),
  53. 'a.png、b.pdf'
  54. )
  55. assert.equal(formatOaPrintAttachmentText('安徽省 / 合肥市 / 瑶海区'), '安徽省 / 合肥市 / 瑶海区')
  56. console.log('ok: oa upload file type helpers')