Skip to main content
Glama

MongoDB MCP Server

Official
by mongodb-js
enforce-zod-v4.test.js5.12 kB
import path from "path"; import { RuleTester } from "eslint"; import { describe, it } from "vitest"; import tsParser from "@typescript-eslint/parser"; import rule from "./enforce-zod-v4.js"; const ROOT = process.cwd(); const resolve = (p) => path.resolve(ROOT, p); const ruleTester = new RuleTester({ languageOptions: { parser: tsParser, parserOptions: { ecmaVersion: 2022, sourceType: "module" }, }, }); describe("enforce-zod-v4", () => { it("should allow zod/v4 imports in config.ts", () => { ruleTester.run("enforce-zod-v4", rule, { valid: [ { filename: resolve("src/common/config.ts"), code: 'import { z } from "zod/v4";\n', }, { filename: resolve("src/common/config.ts"), code: 'import * as z from "zod/v4";\n', }, { filename: resolve("src/common/config.ts"), code: 'import type { ZodType } from "zod/v4";\n', }, ], invalid: [], }); }); it("should allow regular zod imports in other files", () => { ruleTester.run("enforce-zod-v4", rule, { valid: [ { filename: resolve("src/tools/tool.ts"), code: 'import { z } from "zod";\n', }, { filename: resolve("src/resources/resource.ts"), code: 'import * as z from "zod";\n', }, { filename: resolve("src/some/module.ts"), code: 'import type { ZodType } from "zod";\n', }, ], invalid: [], }); }); it("should allow non-zod imports in any file", () => { ruleTester.run("enforce-zod-v4", rule, { valid: [ { filename: resolve("src/tools/tool.ts"), code: 'import { something } from "some-package";\n', }, { filename: resolve("src/common/config.ts"), code: 'import path from "path";\n', }, { filename: resolve("src/resources/resource.ts"), code: 'import { Logger } from "./logger.js";\n', }, ], invalid: [], }); }); it("should report error when zod/v4 is imported in files other than config.ts", () => { ruleTester.run("enforce-zod-v4", rule, { valid: [], invalid: [ { filename: resolve("src/tools/tool.ts"), code: 'import { z } from "zod/v4";\n', errors: [ { messageId: "enforceZodV4", data: { importPath: "zod/v4" }, }, ], }, { filename: resolve("src/resources/resource.ts"), code: 'import * as z from "zod/v4";\n', errors: [ { messageId: "enforceZodV4", data: { importPath: "zod/v4" }, }, ], }, { filename: resolve("src/some/module.ts"), code: 'import type { ZodType } from "zod/v4";\n', errors: [ { messageId: "enforceZodV4", data: { importPath: "zod/v4" }, }, ], }, { filename: resolve("tests/unit/toolBase.test.ts"), code: 'import { z } from "zod/v4";\n', errors: [ { messageId: "enforceZodV4", data: { importPath: "zod/v4" }, }, ], }, ], }); }); it("should handle multiple imports in a single file", () => { ruleTester.run("enforce-zod-v4", rule, { valid: [ { filename: resolve("src/common/config.ts"), code: `import { z } from "zod/v4"; import path from "path"; import type { UserConfig } from "./types.js"; `, }, ], invalid: [ { filename: resolve("src/tools/tool.ts"), code: `import { z } from "zod/v4"; import path from "path"; `, errors: [ { messageId: "enforceZodV4", data: { importPath: "zod/v4" }, }, ], }, ], }); }); });

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/mongodb-js/mongodb-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server