diff --git a/Sense/ui/tests/devicePayload.test.mjs b/Sense/ui/tests/devicePayload.test.mjs new file mode 100644 index 0000000..9c8c2eb --- /dev/null +++ b/Sense/ui/tests/devicePayload.test.mjs @@ -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) +}) +