Files
order_site/apps/backend/src/services/session/session-proof.test.js
T

65 lines
1.9 KiB
JavaScript

import test from 'node:test'
import assert from 'node:assert/strict'
import path from 'node:path'
import { resolveRedeemProofMode, shouldCaptureBeijingTimeProof } from './session-proof.js'
import { buildArtifactPaths } from './session-proof-paths.js'
test('resolveRedeemProofMode normalizes configured modes and falls back to full', () => {
assert.equal(resolveRedeemProofMode('basic'), 'basic')
assert.equal(resolveRedeemProofMode(' OFF '), 'off')
assert.equal(resolveRedeemProofMode('full'), 'full')
assert.equal(resolveRedeemProofMode('unexpected'), 'full')
assert.equal(resolveRedeemProofMode(''), 'full')
})
test('shouldCaptureBeijingTimeProof only returns true for successful redeem results', () => {
assert.equal(
shouldCaptureBeijingTimeProof({
classification: {
success: true,
},
}),
true,
)
assert.equal(
shouldCaptureBeijingTimeProof({
classification: {
success: false,
},
}),
false,
)
assert.equal(
shouldCaptureBeijingTimeProof({
redeem: {
iRet: 0,
},
}),
true,
)
assert.equal(
shouldCaptureBeijingTimeProof({
redeem: {
iRet: -183,
},
}),
false,
)
assert.equal(shouldCaptureBeijingTimeProof(null), false)
})
test('buildArtifactPaths keeps redeem proof artifact filenames stable', () => {
const artifactPaths = buildArtifactPaths('/tmp/redeem-proof')
assert.equal(artifactPaths.redeemPageScreenshotPath, path.join('/tmp/redeem-proof', 'redeem-page.png'))
assert.equal(artifactPaths.beijingTimeScreenshotPath, path.join('/tmp/redeem-proof', 'beijing-time.png'))
assert.equal(artifactPaths.screenshotPath, path.join('/tmp/redeem-proof', 'redeem-result.png'))
assert.equal(artifactPaths.htmlPath, path.join('/tmp/redeem-proof', 'page.html'))
assert.equal(artifactPaths.resultPath, path.join('/tmp/redeem-proof', 'result.json'))
})