test: cover device payload field boundaries (#56)

This commit is contained in:
ila
2026-08-13 22:40:16 +08:00
parent 949e50f1c5
commit e18502ee67
+34
View File
@@ -0,0 +1,34 @@
import assert from 'node:assert/strict'
import test from 'node:test'
import { createDevicePayload, updateDevicePayload } from '../src/views/sense/device/devicePayload.mjs'
const form = {
name: '东门摄像机',
location: '教学楼一楼东门',
modality: 'video',
capabilities: ['video'],
id: 'read-only-id'
}
test('create payload keeps Chinese values and includes modality', () => {
assert.deepEqual(createDevicePayload(form), {
name: '东门摄像机',
location: '教学楼一楼东门',
modality: 'video',
capabilities: ['video']
})
})
test('update payload uses the PATCH allowlist and excludes modality', () => {
const payload = updateDevicePayload(form, 9)
assert.deepEqual(payload, {
name: '东门摄像机',
location: '教学楼一楼东门',
capabilities: ['video'],
version: 9
})
assert.equal('modality' in payload, false)
assert.equal('id' in payload, false)
})