| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import assert from 'node:assert/strict'
- import {
- buildDirectMinioUrl,
- parsePdfPreviewQuery,
- pickQueryValue,
- safeDecodeURIComponent,
- toAbsoluteDownloadUrl
- } from './oa-pdf-preview-query.js'
- assert.equal(safeDecodeURIComponent('a%2Fb.pdf'), 'a/b.pdf')
- assert.equal(safeDecodeURIComponent('100%完成.pdf'), '100%完成.pdf')
- assert.equal(
- pickQueryValue({ fileUrl: 'k1', f: 'k2' }, ['fileUrl', 'f']),
- 'k1'
- )
- assert.equal(pickQueryValue({ FILEURL: 'k-upper' }, ['fileUrl']), 'k-upper')
- assert.equal(pickQueryValue({ f: 'short' }, ['fileUrl', 'f']), 'short')
- const parsed = parsePdfPreviewQuery({
- fileUrl: encodeURIComponent('oa-approval/x.pdf'),
- name: 'approval.pdf'
- })
- assert.equal(parsed.fileUrl, 'oa-approval/x.pdf')
- assert.equal(parsed.name, 'approval.pdf')
- const fromF = parsePdfPreviewQuery({ f: 'oa-approval/y.pdf' })
- assert.equal(fromF.fileUrl, 'oa-approval/y.pdf')
- const legacy = parsePdfPreviewQuery({
- url: 'https://example.com/a.pdf'
- })
- assert.equal(legacy.legacyUrl, 'https://example.com/a.pdf')
- assert.equal(legacy.fileUrl, '')
- const bases = {
- apiBaseUrl: 'https://www.chengyantek.cn/api',
- minioBaseUrl: 'https://www.chengyantek.cn/minio/zkxw'
- }
- assert.equal(
- toAbsoluteDownloadUrl(
- '/minio/zkxw/oa-approval/x.pdf?X-Amz-Signature=abc',
- bases
- ),
- 'https://www.chengyantek.cn/minio/zkxw/oa-approval/x.pdf?X-Amz-Signature=abc'
- )
- assert.equal(
- toAbsoluteDownloadUrl('https://cdn.example/a.pdf', bases),
- 'https://cdn.example/a.pdf'
- )
- assert.equal(
- toAbsoluteDownloadUrl('oa-approval/x.pdf', bases),
- 'https://www.chengyantek.cn/minio/zkxw/oa-approval/x.pdf'
- )
- assert.equal(
- toAbsoluteDownloadUrl('//cdn.example/a.pdf', bases),
- 'https://cdn.example/a.pdf'
- )
- assert.equal(
- buildDirectMinioUrl('oa-approval/x.pdf', bases),
- 'https://www.chengyantek.cn/minio/zkxw/oa-approval/x.pdf'
- )
- assert.equal(
- buildDirectMinioUrl(
- '/minio/zkxw/oa-approval/x.pdf?X-Amz-Signature=broken',
- bases
- ),
- 'https://www.chengyantek.cn/minio/zkxw/oa-approval/x.pdf'
- )
- console.log('oa-pdf-preview-query: ok')
|