26 lines
844 B
JavaScript
26 lines
844 B
JavaScript
import test from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
|
|
import {
|
|
SCAN_BROADCAST_ACTION,
|
|
SCAN_BROADCAST_EXTRA,
|
|
isDuplicateScan,
|
|
normalizeScanValue,
|
|
resetScanDeduplication
|
|
} from '../src/utils/scan-broadcast.js'
|
|
|
|
test('scanner uses the confirmed PDA broadcast contract', () => {
|
|
assert.equal(SCAN_BROADCAST_ACTION, 'android.intent.action.SCANRESULT')
|
|
assert.equal(SCAN_BROADCAST_EXTRA, 'value')
|
|
assert.equal(normalizeScanValue(' EL-38201\r\n'), 'EL-38201')
|
|
assert.equal(normalizeScanValue(null), '')
|
|
})
|
|
|
|
test('scanner drops only immediate duplicate broadcasts', () => {
|
|
resetScanDeduplication()
|
|
assert.equal(isDuplicateScan('EL-38201', 1000), false)
|
|
assert.equal(isDuplicateScan('EL-38201', 1050), true)
|
|
assert.equal(isDuplicateScan('EL-38201', 1100), false)
|
|
assert.equal(isDuplicateScan('EL-38202', 1110), false)
|
|
})
|