| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384 |
- import { test } from 'node:test'
- import assert from 'node:assert/strict'
- import { serializeYAML } from '../../../src/storage/serializers/yaml-dialect.js'
- test('列表输出块格式', () => {
- const data = { 伏笔: ['伏笔-001', '伏笔-002'] }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('伏笔:\n - 伏笔-001\n - 伏笔-002'))
- assert.ok(!yaml.includes('[伏笔-001, 伏笔-002]'))
- })
- test('危险值加引号:数字串', () => {
- const data = { 章号: '123' }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('章号: "123"'))
- })
- test('危险值加引号:布尔字面值', () => {
- const data = { 开关: 'true', 标志: 'false' }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('开关: "true"'))
- assert.ok(yaml.includes('标志: "false"'))
- })
- test('危险值加引号:null 字面值', () => {
- const data = { 值: 'null' }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('值: "null"'))
- })
- test('危险值加引号:含冒号', () => {
- const data = { 标题: '包含:冒号' }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('标题: "包含:冒号"'))
- })
- test('危险值加引号:以 # 或 - 开头', () => {
- const data = { 注释: '#comment', 项: '-item' }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('注释: "#comment"'))
- assert.ok(yaml.includes('项: "-item"'))
- })
- test('正常字符串不加引号', () => {
- const data = { 标题: '测试章节', 视角: '林晚' }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('标题: 测试章节'))
- assert.ok(yaml.includes('视角: 林晚'))
- })
- test('数字和布尔值正常输出', () => {
- const data = { 章号: 1, 字数: 3000, 开关: true }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('章号: 1'))
- assert.ok(yaml.includes('字数: 3000'))
- assert.ok(yaml.includes('开关: true'))
- })
- test('嵌套映射抛错', () => {
- const data = { 外层: { 内层: '值' } }
- assert.throws(() => {
- serializeYAML(data)
- }, /禁止嵌套映射/)
- })
- test('空数组', () => {
- const data = { 列表: [] }
- const yaml = serializeYAML(data)
- assert.equal(yaml, '列表:')
- })
- test('混合字段', () => {
- const data = {
- 章号: 1,
- 标题: '测试',
- 伏笔: ['伏笔-001', '伏笔-002'],
- 危险数字: '123',
- }
- const yaml = serializeYAML(data)
- assert.ok(yaml.includes('章号: 1'))
- assert.ok(yaml.includes('标题: 测试'))
- assert.ok(yaml.includes('伏笔:\n - 伏笔-001'))
- assert.ok(yaml.includes('危险数字: "123"'))
- })
|