| 123456789101112131415161718 |
- import { describe, expect, it } from 'vitest'
- import { truncateJsonStringBytes } from '../src/output-json.ts'
- describe('truncateJsonStringBytes', () => {
- it('returns a fitting string whole and rejects budgets without JSON quotes', () => {
- expect(truncateJsonStringBytes('fits', 6)).toBe('fits')
- expect(truncateJsonStringBytes('x', 1)).toBe('')
- })
- it('accounts every JSON escape and cuts only between complete code points', () => {
- const prefix = '"\\\b\t\n\f\r\u0000😀\ud800€a'
- const text = `${prefix}z`
- const budget = Buffer.byteLength(JSON.stringify(prefix), 'utf8')
- expect(truncateJsonStringBytes(text, budget)).toBe(prefix)
- expect(Buffer.byteLength(JSON.stringify(truncateJsonStringBytes(text, budget)), 'utf8')).toBe(budget)
- })
- })
|