Fix tests

This commit is contained in:
olaservo 2025-06-01 16:07:45 -07:00
commit 06af321530

View file

@ -11,60 +11,64 @@ import type { Tool } from "@modelcontextprotocol/sdk/types.js";
describe("generateDefaultValue", () => { describe("generateDefaultValue", () => {
test("generates default string", () => { test("generates default string", () => {
expect(generateDefaultValue({ type: "string", required: true })).toBe(""); const parentSchema = { type: "object" as const, required: ["testProp"] };
expect(generateDefaultValue({ type: "string" }, "testProp", parentSchema)).toBe("");
}); });
test("generates default number", () => { test("generates default number", () => {
expect(generateDefaultValue({ type: "number", required: true })).toBe(0); const parentSchema = { type: "object" as const, required: ["testProp"] };
expect(generateDefaultValue({ type: "number" }, "testProp", parentSchema)).toBe(0);
}); });
test("generates default integer", () => { test("generates default integer", () => {
expect(generateDefaultValue({ type: "integer", required: true })).toBe(0); const parentSchema = { type: "object" as const, required: ["testProp"] };
expect(generateDefaultValue({ type: "integer" }, "testProp", parentSchema)).toBe(0);
}); });
test("generates default boolean", () => { test("generates default boolean", () => {
expect(generateDefaultValue({ type: "boolean", required: true })).toBe( const parentSchema = { type: "object" as const, required: ["testProp"] };
expect(generateDefaultValue({ type: "boolean" }, "testProp", parentSchema)).toBe(
false, false,
); );
}); });
test("generates default array", () => { test("generates default array", () => {
expect(generateDefaultValue({ type: "array", required: true })).toEqual([]); expect(generateDefaultValue({ type: "array" })).toEqual([]);
}); });
test("generates default empty object", () => { test("generates default empty object", () => {
expect(generateDefaultValue({ type: "object", required: true })).toEqual( expect(generateDefaultValue({ type: "object" })).toEqual(
{}, {},
); );
}); });
test("generates default null for unknown types", () => { test("generates default null for unknown types", () => {
// @ts-expect-error Testing with invalid type // @ts-expect-error Testing with invalid type
expect(generateDefaultValue({ type: "unknown", required: true })).toBe( expect(generateDefaultValue({ type: "unknown" })).toBe(
null, undefined,
); );
}); });
test("generates empty array for non-required array", () => { test("generates empty array for non-required array", () => {
expect(generateDefaultValue({ type: "array", required: false })).toEqual( expect(generateDefaultValue({ type: "array" })).toEqual(
[], [],
); );
}); });
test("generates empty object for non-required object", () => { test("generates empty object for non-required object", () => {
expect(generateDefaultValue({ type: "object", required: false })).toEqual( expect(generateDefaultValue({ type: "object" })).toEqual(
{}, {},
); );
}); });
test("generates null for non-required primitive types", () => { test("generates undefined for non-required primitive types", () => {
expect(generateDefaultValue({ type: "string", required: false })).toBe( expect(generateDefaultValue({ type: "string" })).toBe(
undefined, undefined,
); );
expect(generateDefaultValue({ type: "number", required: false })).toBe( expect(generateDefaultValue({ type: "number" })).toBe(
undefined, undefined,
); );
expect(generateDefaultValue({ type: "boolean", required: false })).toBe( expect(generateDefaultValue({ type: "boolean" })).toBe(
undefined, undefined,
); );
}); });
@ -72,11 +76,11 @@ describe("generateDefaultValue", () => {
test("generates object with properties", () => { test("generates object with properties", () => {
const schema: JsonSchemaType = { const schema: JsonSchemaType = {
type: "object", type: "object",
required: true, required: ["name", "age", "isActive"],
properties: { properties: {
name: { type: "string", required: true }, name: { type: "string" },
age: { type: "number", required: true }, age: { type: "number" },
isActive: { type: "boolean", required: true }, isActive: { type: "boolean" },
}, },
}; };
expect(generateDefaultValue(schema)).toEqual({ expect(generateDefaultValue(schema)).toEqual({
@ -89,18 +93,18 @@ describe("generateDefaultValue", () => {
test("handles nested objects", () => { test("handles nested objects", () => {
const schema: JsonSchemaType = { const schema: JsonSchemaType = {
type: "object", type: "object",
required: true, required: ["user"],
properties: { properties: {
user: { user: {
type: "object", type: "object",
required: true, required: ["name", "address"],
properties: { properties: {
name: { type: "string", required: true }, name: { type: "string" },
address: { address: {
type: "object", type: "object",
required: true, required: ["city"],
properties: { properties: {
city: { type: "string", required: true }, city: { type: "string" },
}, },
}, },
}, },