GuDingZiChan/print-agent/tests/config-store.test.mjs

71 lines
2.5 KiB
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import fs from 'node:fs/promises'
import os from 'node:os'
import path from 'node:path'
import {
DEFAULT_SERVER_URL,
createConfigStore,
defaultAgentConfig,
normalizeServerUrl
} from '../src/config/storage.js'
test('defaultAgentConfig 返回完整的初始配置', () => {
const config = defaultAgentConfig()
assert.equal(config.serverUrl, DEFAULT_SERVER_URL)
assert.equal(config.pairingCode, '')
assert.equal(config.deviceToken, '')
assert.equal(config.terminalName, '')
assert.equal(config.selectedPrinterName, '')
assert.equal(config.pollIntervalMs, 3000)
assert.equal(config.heartbeatIntervalMs, 30000)
assert.deepEqual(config.driverHelp.companyArchive, {
version: '2026.01.28.01',
fileName: 'xprinter-driver-2026.01.28.01.exe',
relativePath:
'downloads/printer-driver/xprinter/archive/2026.01.28.01/xprinter-driver-2026.01.28.01.exe'
})
})
test('createConfigStore 可以保存并重新读取配置', async () => {
const tempDir = await fs.mkdtemp(path.join(os.tmpdir(), 'print-agent-config-'))
const store = createConfigStore(tempDir)
const saved = await store.save({
terminalName: '行政标签机',
serverUrl: 'https://asset.example.com',
selectedPrinterName: 'Xprinter XP-420B',
pairResult: {
terminalId: 8,
deviceToken: 'terminal-token',
pairedAt: '2026-03-25T09:15:00.000Z'
}
})
assert.equal(saved.terminalName, '行政标签机')
assert.equal(saved.serverUrl, 'https://asset.example.com')
assert.equal(saved.selectedPrinterName, 'Xprinter XP-420B')
assert.equal(saved.terminalId, 8)
assert.equal(saved.deviceToken, 'terminal-token')
assert.equal(saved.pairedAt, '2026-03-25T09:15:00.000Z')
const loaded = await store.load()
assert.equal(loaded.terminalName, '行政标签机')
assert.equal(loaded.serverUrl, 'https://asset.example.com')
assert.equal(loaded.selectedPrinterName, 'Xprinter XP-420B')
assert.equal(loaded.terminalId, 8)
assert.equal(loaded.deviceToken, 'terminal-token')
})
test('normalizeServerUrl 会把旧域名自动切换到当前可用域名', () => {
assert.equal(normalizeServerUrl('https://www.jsgdzc.cn'), DEFAULT_SERVER_URL)
assert.equal(normalizeServerUrl('https://www.jsgdzc.cn/api'), DEFAULT_SERVER_URL)
assert.equal(normalizeServerUrl('https://jsgdzc.cn/'), DEFAULT_SERVER_URL)
assert.equal(
normalizeServerUrl('https://asset.jiansun.vip/api'),
DEFAULT_SERVER_URL
)
})