优化
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
import assert from 'node:assert/strict'
|
||||
import test from 'node:test'
|
||||
import { formatQualificationFileSize, QUALIFICATION_MAX_FILE_SIZE, validateQualificationFile } from './qualificationFile.ts'
|
||||
import { formatQualificationFileSize, qualificationUploadErrorMessage, QUALIFICATION_MAX_FILE_SIZE, validateQualificationFile } from './qualificationFile.ts'
|
||||
|
||||
test('accepts the backend-confirmed PDF, JPG and PNG formats up to 5MB', () => {
|
||||
assert.equal(validateQualificationFile({ name: '营业执照.jpeg', size: QUALIFICATION_MAX_FILE_SIZE, type: 'image/jpeg' }), '')
|
||||
@@ -20,3 +20,9 @@ test('formats selected file sizes for review', () => {
|
||||
assert.equal(formatQualificationFileSize(1536), '1.5 KB')
|
||||
assert.equal(formatQualificationFileSize(2 * 1024 * 1024), '2.0 MB')
|
||||
})
|
||||
|
||||
test('turns gateway 413 responses into an actionable upload message', () => {
|
||||
assert.match(qualificationUploadErrorMessage({ status: 413 }), /上传网关拒绝(413)/)
|
||||
assert.match(qualificationUploadErrorMessage({ status: 413 }), /已小于 5MB.*检查网关上传限制/)
|
||||
assert.equal(qualificationUploadErrorMessage(new Error('服务暂不可用')), '服务暂不可用')
|
||||
})
|
||||
|
||||
@@ -23,3 +23,13 @@ export function formatQualificationFileSize(bytes: number) {
|
||||
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)} KB`
|
||||
return `${(bytes / 1024 / 1024).toFixed(1)} MB`
|
||||
}
|
||||
|
||||
export function qualificationUploadErrorMessage(error: unknown) {
|
||||
const status = typeof error === 'object' && error !== null && 'status' in error
|
||||
? (error as { status?: unknown }).status
|
||||
: undefined
|
||||
if (status === 413) {
|
||||
return '文件被上传网关拒绝(413)。请压缩后重试;若文件已小于 5MB,请联系平台管理员检查网关上传限制'
|
||||
}
|
||||
return error instanceof Error ? error.message : '资质文件上传失败'
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user