| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253 |
- import assert from 'node:assert/strict'
- import {
- isImageFileType,
- fileExtLabel,
- formatInvoiceDateYmd,
- buildAttachItemsFromInvoiceRows,
- mergeInvoicePicksByDraftKeys
- } from '../utils/bxInvoiceThumb.js'
- assert.equal(isImageFileType('image/jpeg'), true)
- assert.equal(isImageFileType('application/pdf'), false)
- assert.equal(fileExtLabel('a.PDF'), 'PDF')
- assert.equal(formatInvoiceDateYmd('2026-09-16T12:00:00'), '2026-09-16')
- assert.equal(formatInvoiceDateYmd(''), '—')
- const rows = [
- {
- id: 'inv1',
- amount: 100,
- createTime: '2026-09-01T10:00:00',
- attachments: [
- { id: 'a1', fileName: 'x.jpg', fileType: 'image/jpeg' },
- { id: 'a2', fileName: 'y.pdf', fileType: 'application/pdf' }
- ]
- }
- ]
- const items = buildAttachItemsFromInvoiceRows(rows)
- assert.equal(items.length, 2)
- assert.equal(items[0].key, 'inv1:a1')
- assert.equal(items[1].fileName, 'y.pdf')
- const prev = [
- {
- key: 'inv9:a9',
- invoiceId: 'inv9',
- attachmentId: 'a9',
- amount: 9,
- createTime: '2026-08-01',
- fileName: 'old.jpg',
- fileType: 'image/jpeg',
- previewUrl: 'http://old'
- }
- ]
- const merged = mergeInvoicePicksByDraftKeys(
- ['inv9:a9', 'inv1:a1'],
- items,
- prev
- )
- assert.equal(merged.length, 2)
- assert.ok(merged.some((p) => p.key === 'inv9:a9' && p.previewUrl === 'http://old'))
- assert.ok(merged.some((p) => p.key === 'inv1:a1'))
- console.log('bxInvoiceThumb ok')
|