import assert from 'node:assert/strict'
import { test } from 'node:test'
import { parseHTML } from 'linkedom'
import { readFile } from 'node:fs/promises'
import * as Vue from 'vue'
import { compileScript, compileTemplate, parse } from '@vue/compiler-sfc'
const utilityUrl = new URL('../src/utils/shipmentLabelPrint.js', import.meta.url)
async function printer() {
let module
try { module = await import(utilityUrl.href) } catch (error) {
assert.fail(`缺少可执行的标签打印工具:${error.message}`)
}
return module.printShipmentLabels
}
function popup() {
const { document } = parseHTML('
')
const events = new EventTarget()
const result = {
document, closed: false, printed: 0, focused: false,
close() { this.closed = true },
focus() { this.focused = true },
print() { this.printed += 1 },
addEventListener: events.addEventListener.bind(events),
dispatchEvent: events.dispatchEvent.bind(events)
}
return result
}
const label = {
shipmentNo: 'SH-原单号', shipmentStatus: 'CONFIRMED', palletCode: '原托盘-01',
customerName: '', siteName: '现场 & A',
strainName: '
', batchNo: '