@joystick.js/db-canary
Version:
JoystickDB - A minimalist database server for the Joystick framework
46 lines (34 loc) • 1.33 kB
JavaScript
import test from 'ava';
import safe_json_parse from '../../../src/server/lib/safe_json_parse.js';
test('safe_json_parse parses valid JSON string', (t = {}) => {
const valid_json = '{"name": "test", "value": 123}';
const result = safe_json_parse(valid_json);
t.deepEqual(result, { name: "test", value: 123 });
});
test('safe_json_parse returns null for invalid JSON string', (t = {}) => {
const invalid_json = '{"name": "test", "value":}';
const result = safe_json_parse(invalid_json);
t.is(result, null);
});
test('safe_json_parse returns null for empty string', (t = {}) => {
const empty_string = '';
const result = safe_json_parse(empty_string);
t.is(result, null);
});
test('safe_json_parse returns null for non-string input', (t = {}) => {
const non_string = undefined;
const result = safe_json_parse(non_string);
t.is(result, null);
});
test('safe_json_parse parses array JSON', (t = {}) => {
const array_json = '[1, 2, 3]';
const result = safe_json_parse(array_json);
t.deepEqual(result, [1, 2, 3]);
});
test('safe_json_parse parses primitive JSON values', (t = {}) => {
t.is(safe_json_parse('true'), true);
t.is(safe_json_parse('false'), false);
t.is(safe_json_parse('null'), null);
t.is(safe_json_parse('42'), 42);
t.is(safe_json_parse('"hello"'), "hello");
});