/
erioxis
/
web-nodejs
Обзор
Документация
Войти
/
erioxis
/
web-nodejs
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
backend/node_modules/fast-json-stringify/test/issue-793.test.js
107 строк
2 KB
erioxis
lab11fix
15 дек 2025, 23:21
15 дек 2025, 23:21
70dc7ba
Код
Авторство
О чём код?
'use strict' const { test } = require('node:test') const build = require('..') test('serialize string with newlines - issue #793', (t) => { t.plan(2) const schema = { type: 'object', properties: { message: { type: 'string' } } } const input = { message: `This is a string with multiple newlines in it Foo` } const stringify = build(schema) const output = stringify(input) // The output should be valid JSON t.assert.doesNotThrow(() => { JSON.parse(output) }, 'JSON output should be parseable') // The parsed output should match the input const parsed = JSON.parse(output) t.assert.equal(parsed.message, input.message) }) test('serialize string with various newline characters - issue #793', (t) => { t.plan(4) const schema = { type: 'string' } const stringify = build(schema) // Test \n (line feed) const inputLF = 'line1\nline2' const outputLF = stringify(inputLF) t.assert.equal(JSON.parse(outputLF), inputLF) // Test \r (carriage return) const inputCR = 'line1\rline2' const outputCR = stringify(inputCR) t.assert.equal(JSON.parse(outputCR), inputCR) // Test \r\n (CRLF) const inputCRLF = 'line1\r\nline2' const outputCRLF = stringify(inputCRLF) t.assert.equal(JSON.parse(outputCRLF), inputCRLF) // Test mixed newlines const inputMixed = 'line1\nline2\rline3\r\nline4' const outputMixed = stringify(inputMixed) t.assert.equal(JSON.parse(outputMixed), inputMixed) }) test('serialize object with newlines in multiple properties - issue #793', (t) => { t.plan(2) const schema = { type: 'object', properties: { message: { type: 'string' }, description: { type: 'string' }, timestamp: { type: 'string' } } } const input = { message: `This is a string with multiple newlines in it Foo`, description: 'This JSON response contains a field with newline characters', timestamp: new Date().toISOString() } const stringify = build(schema) const output = stringify(input) // The output should be valid JSON t.assert.doesNotThrow(() => { JSON.parse(output) }, 'JSON output should be parseable') // The parsed output should match the input const parsed = JSON.parse(output) t.assert.deepEqual(parsed, input) })