35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import assert from 'node:assert/strict'
|
|
import test from 'node:test'
|
|
|
|
import { cameraCaptureInputProps, resolveCameraEntryEnabled } from '../src/utils/camera-capture.ts'
|
|
|
|
test('相机入口:仅打手端移动端显示', () => {
|
|
assert.equal(resolveCameraEntryEnabled({ isMobile: true, scope: 'worker' }), true)
|
|
assert.equal(resolveCameraEntryEnabled({ isMobile: false, scope: 'worker' }), false)
|
|
assert.equal(resolveCameraEntryEnabled({ isMobile: true, scope: 'admin' }), false)
|
|
assert.equal(resolveCameraEntryEnabled({ isMobile: true, scope: 'collect' }), false)
|
|
assert.equal(resolveCameraEntryEnabled({ isMobile: true }), false)
|
|
})
|
|
|
|
test('相机入口:allowCamera 显式开关优先', () => {
|
|
assert.equal(
|
|
resolveCameraEntryEnabled({ isMobile: true, scope: 'worker', allowCamera: false }),
|
|
false,
|
|
)
|
|
assert.equal(
|
|
resolveCameraEntryEnabled({ isMobile: false, scope: 'admin', allowCamera: true }),
|
|
true,
|
|
)
|
|
})
|
|
|
|
test('相机构造:图片/视频分别使用对应 accept 与后置摄像头', () => {
|
|
assert.deepEqual(cameraCaptureInputProps('image'), {
|
|
accept: 'image/*',
|
|
capture: 'environment',
|
|
})
|
|
assert.deepEqual(cameraCaptureInputProps('video'), {
|
|
accept: 'video/*',
|
|
capture: 'environment',
|
|
})
|
|
})
|