Files
jiapu/tests/growth-pages.test.js
T

52 lines
2.2 KiB
JavaScript

const assert = require('node:assert/strict');
const test = require('node:test');
const GrowthPages = require('../public/js/growth-pages.js');
test('成长记录页只从 URL 读取真实家谱编号', () => {
assert.equal(GrowthPages.getCurrentGenealogyId('?genealogyId=900001001'), '900001001');
assert.equal(GrowthPages.getCurrentGenealogyId(''), '');
});
test('成长记录写入只构造 Apifox GrowthRecordBody 字段', () => {
assert.deepEqual(
GrowthPages.buildGrowthRecordBody({
lineagePersonId: '2060000000000000001',
recordType: 'birth',
recordTitle: ' 出生记录 ',
recordContent: ' 平安出生 ',
recordDate: '2026-07-24',
remindTime: '2026-07-24T09:00:00+08:00',
mediaOssIds: '101,102',
sortOrder: '3',
status: 'enabled',
content: '旧字段',
personId: '旧字段'
}),
{
lineagePersonId: '2060000000000000001',
recordType: 'birth',
recordTitle: '出生记录',
recordContent: '平安出生',
recordDate: '2026-07-24',
remindTime: '2026-07-24T09:00:00+08:00',
mediaOssIds: '101,102',
sortOrder: 3,
status: 'enabled'
}
);
});
test('成长记录校验标题、整数 ID、附件 OSS ID 和排序值', () => {
assert.equal(GrowthPages.validateGrowthRecordBody({ recordTitle: '' }), '请填写记录标题');
assert.equal(GrowthPages.validateGrowthRecordBody({ recordTitle: '记录', lineagePersonId: 'A-1' }), '世系人物 ID 必须是整数');
assert.equal(GrowthPages.validateGrowthRecordBody({ recordTitle: '记录', mediaOssIds: '101, 102' }), '附件 OSS ID 请使用英文逗号分隔的正整数');
assert.equal(GrowthPages.validateGrowthRecordBody(GrowthPages.buildGrowthRecordBody({ recordTitle: '记录', sortOrder: '1.5' })), '排序值必须是安全整数');
assert.equal(GrowthPages.validateGrowthRecordBody({ recordTitle: '记录', mediaOssIds: '101,102', sortOrder: 1 }), '');
});
test('成长记录列表不猜测未展开的响应 DTO', () => {
assert.deepEqual(GrowthPages.normalizeGrowthList([{ property1: 'value' }]), [{ property1: 'value' }]);
assert.deepEqual(GrowthPages.normalizeGrowthList({ rows: [] }), []);
});