61 lines
2.7 KiB
JavaScript
61 lines
2.7 KiB
JavaScript
const test = require('node:test')
|
|
const assert = require('node:assert/strict')
|
|
|
|
test('pdf files resolve to local pdf viewer mode and prefer visitUrl as source', async () => {
|
|
const { resolveTabletPreviewMode, resolvePdfSourceUrl } =
|
|
await import('../src/views/review/tablet/previewMode.mjs')
|
|
const payload = {
|
|
fileType: 'pdf',
|
|
visitUrl: '/admin-api/project/review-tablet/file-preview-source/12/preview-12.pdf?sign=abc',
|
|
openUrl: 'http://kkfileview.example.com/onlinePreview?url=xxx'
|
|
}
|
|
assert.equal(resolveTabletPreviewMode(payload), 'pdf')
|
|
assert.equal(resolvePdfSourceUrl(payload, payload.openUrl), payload.visitUrl)
|
|
})
|
|
|
|
test('office files stay on iframe preview mode and keep remote preview url', async () => {
|
|
const { resolveTabletPreviewMode, resolvePdfSourceUrl } =
|
|
await import('../src/views/review/tablet/previewMode.mjs')
|
|
const payload = {
|
|
fileType: 'docx',
|
|
visitUrl: '/admin-api/project/review-tablet/file-preview-source/12/preview-12.docx?sign=abc',
|
|
openUrl: 'http://kkfileview.example.com/onlinePreview?url=xxx'
|
|
}
|
|
assert.equal(resolveTabletPreviewMode(payload), 'iframe')
|
|
assert.equal(resolvePdfSourceUrl(payload, payload.openUrl), payload.openUrl)
|
|
})
|
|
|
|
test('pdf visitUrl with non-client host falls back to same-origin preview-source path', async () => {
|
|
const { resolvePdfSourceUrl } = await import('../src/views/review/tablet/previewMode.mjs')
|
|
const payload = {
|
|
fileType: 'pdf',
|
|
visitUrl:
|
|
'http://host.docker.internal:48080/admin-api/project/review-tablet/file-preview-source/12/preview-12.pdf?sign=abc',
|
|
openUrl: 'http://10.11.74.40:8012/onlinePreview?url=xxx'
|
|
}
|
|
assert.equal(
|
|
resolvePdfSourceUrl(payload, payload.openUrl),
|
|
'/admin-api/project/review-tablet/file-preview-source/12/preview-12.pdf?sign=abc'
|
|
)
|
|
})
|
|
|
|
test('pdf new window prefers unified preview url instead of raw source url', async () => {
|
|
const { resolveNewWindowPreviewUrl } = await import('../src/views/review/tablet/previewMode.mjs')
|
|
const payload = {
|
|
fileType: 'pdf',
|
|
visitUrl: '/admin-api/project/review-tablet/file-preview-source/12/preview-12.pdf?sign=abc',
|
|
openUrl: 'http://192.168.10.24:8012/onlinePreview?url=xxx'
|
|
}
|
|
assert.equal(resolveNewWindowPreviewUrl(payload, payload.visitUrl), payload.openUrl)
|
|
})
|
|
|
|
test('pdf files can fall back to iframe preview mode on touch tablets', async () => {
|
|
const { resolveTabletPreviewMode } = await import('../src/views/review/tablet/previewMode.mjs')
|
|
const payload = {
|
|
fileType: 'pdf',
|
|
visitUrl: '/admin-api/project/review-tablet/file-preview-source/12/preview-12.pdf?sign=abc',
|
|
openUrl: 'http://192.168.10.24:8012/onlinePreview?url=xxx'
|
|
}
|
|
assert.equal(resolveTabletPreviewMode(payload, { preferIframeForPdf: true }), 'iframe')
|
|
})
|