test: cover device payload field boundaries (#56)
This commit is contained in:
@@ -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)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user