import { describe, expect, it } from 'vitest'; import { deserialize, serialize } from '../../src/types/application/json'; describe('application/json', () => { describe('serialize', () => { it('should serialize a string', () => { const result = serialize('Hello, World!', { type: 'application/json' }); expect(result).toBe('"Hello, World!"'); }); it('should serialize a number', () => { const result = serialize(123, { type: 'application/json' }); expect(result).toBe('123'); }); it('should serialize a boolean', () => { const result = serialize(true, { type: 'application/json' }); expect(result).toBe('true'); }); it('should serialize an array', () => { const result = serialize([1, 2, 3], { type: 'application/json' }); expect(result).toBe('[1,2,3]'); }); it('should serialize an object', () => { const result = serialize({ a: 1, b: 2, c: 3 }, { type: 'application/json' }); expect(result).toBe('{"a":1,"b":2,"c":3}'); }); it('should serialize an object with indent', () => { const result = serialize({ a: 1, b: 2, c: 3 }, { type: 'application/json', indent: 2 }); expect(result).toBe('{\n "a": 1,\n "b": 2,\n "c": 3\n}'); }); }); describe('deserialize', () => { it('should deserialize a string', () => { const result = deserialize('"Hello, World!"', { type: 'application/json' }); expect(result).toBe('Hello, World!'); }); it('should deserialize a number', () => { const result = deserialize('123', { type: 'application/json' }); expect(result).toBe(123); }); it('should deserialize a boolean', () => { const result = deserialize('true', { type: 'application/json' }); expect(result).toBe(true); }); it('should deserialize an array', () => { const result = deserialize('[1,2,3]', { type: 'application/json' }); expect(result).toEqual([1, 2, 3]); }); it('should deserialize an object', () => { const result = deserialize<{ a: number, b: number, c: number }>('{"a":1,"b":2,"c":3}', { type: 'application/json' }); expect(result).toEqual({ a: 1, b: 2, c: 3 }); }); it('should deserialize an object with indent', () => { const result = deserialize<{ a: number, b: number, c: number }>( '{\n "a": 1,\n "b": 2,\n "c": 3\n}', { type: 'application/json' }, ); expect(result).toEqual({ a: 1, b: 2, c: 3 }); }); }); });