2026-07-15 20:31:45 +02:00
|
|
|
import { tryParseToolResultObject } from '$lib/utils';
|
2026-08-10 08:38:37 +02:00
|
|
|
import { describe, expect, it } from 'vitest';
|
2026-07-15 20:31:45 +02:00
|
|
|
|
|
|
|
|
describe('tryParseToolResultObject', () => {
|
|
|
|
|
it('returns null when no result is provided', () => {
|
|
|
|
|
expect(tryParseToolResultObject(undefined)).toBeNull();
|
|
|
|
|
expect(tryParseToolResultObject('')).toBeNull();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('returns the parsed object when the result is JSON', () => {
|
|
|
|
|
expect(tryParseToolResultObject('{"result":"ok","bytes":42}')).toEqual({
|
2026-08-10 08:38:37 +02:00
|
|
|
bytes: 42,
|
|
|
|
|
result: 'ok'
|
2026-07-15 20:31:45 +02:00
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('returns null for JSON arrays (only objects are useful to callers)', () => {
|
|
|
|
|
expect(tryParseToolResultObject('[1,2,3]')).toBeNull();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('returns null for JSON primitives', () => {
|
|
|
|
|
expect(tryParseToolResultObject('"raw string"')).toBeNull();
|
|
|
|
|
expect(tryParseToolResultObject('42')).toBeNull();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
it('returns null for invalid JSON', () => {
|
|
|
|
|
expect(tryParseToolResultObject('not json')).toBeNull();
|
|
|
|
|
expect(tryParseToolResultObject('{bad')).toBeNull();
|
|
|
|
|
});
|
|
|
|
|
});
|