Files
copilotkit__copilotkit/packages/shared/src/utils.test.ts
Tyler Slaton 96885b5959 refactor: consolidate V1/V2 packages into flat @copilotkit/* structure
Flatten all packages from packages/v1/* and packages/v2/* into packages/* —
every package now lives directly under the @copilotkit/ scope with no v1/v2
subdirectories.

- Move all v1 packages (react-core, react-ui, runtime, shared, etc.) from
  packages/v1/* to packages/*
- Absorb v2 react code into packages/react-core/src/v2/ (exported via /v2 subpath)
- Absorb v2 agent code into packages/runtime/src/agent/ (exported via /v2 subpath)
- Move v2 packages (core, angular, demo-agents, etc.) to packages/*
- Replace all @copilotkitnext/* imports with @copilotkit/* equivalents
- Keep @copilotkitnext/angular as the sole exception (angular remains on next)
- Update CI workflows, renovate config, release scripts for flat structure
- No public API surface changes — all exports fields are preserved

Co-authored-by: Alem Tuzlak <t.zlak@hotmail.com>
Signed-off-by: Tyler Slaton <tyler@copilotkit.ai>
2026-03-28 16:45:10 -07:00

67 lines
1.9 KiB
TypeScript

import { describe, test, expect, vi } from "vitest";
import { partialJSONParse, safeParseToolArgs } from "./utils";
describe("partialJSONParse", () => {
test("should parse a valid object", () => {
expect(partialJSONParse('{"key": "value"}')).toEqual({ key: "value" });
});
test("should return {} for a JSON string value", () => {
expect(partialJSONParse('"hello"')).toEqual({});
});
test("should return {} for a JSON number", () => {
expect(partialJSONParse("42")).toEqual({});
});
test("should return {} for a JSON boolean", () => {
expect(partialJSONParse("true")).toEqual({});
});
test("should return {} for a JSON null", () => {
expect(partialJSONParse("null")).toEqual({});
});
test("should return {} for a JSON array", () => {
expect(partialJSONParse("[1, 2, 3]")).toEqual({});
});
test("should return {} for unparseable input", () => {
expect(partialJSONParse("not-json")).toEqual({});
});
test("should return {} for an empty string", () => {
expect(partialJSONParse("")).toEqual({});
});
});
describe("safeParseToolArgs", () => {
test("should parse a valid JSON object string", () => {
expect(safeParseToolArgs('{"key": "value"}')).toEqual({ key: "value" });
});
test("should return {} for a JSON string value", () => {
expect(safeParseToolArgs('"hello"')).toEqual({});
});
test("should return {} for a JSON number", () => {
expect(safeParseToolArgs("42")).toEqual({});
});
test("should return {} for a JSON array", () => {
expect(safeParseToolArgs("[1, 2, 3]")).toEqual({});
});
test("should return {} for malformed JSON", () => {
expect(safeParseToolArgs("{broken")).toEqual({});
});
test("should return {} for a JSON null", () => {
expect(safeParseToolArgs("null")).toEqual({});
});
test("should return {} for a JSON boolean", () => {
expect(safeParseToolArgs("true")).toEqual({});
});
});