Files
shanxia2.0/miniprogram/scripts/test-bx-invoice-thumb.mjs
T

54 lines
1.4 KiB
JavaScript

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')