Skip to main content
Glama
config.test.ts3.04 kB
import { describe, it, expect } from "vitest"; import * as fs from "node:fs"; import * as path from "node:path"; function getAllFiles(dir: string): string[] { const files: string[] = []; const items = fs.readdirSync(dir); items.forEach((item) => { const fullPath = path.join(dir, item); if (fs.statSync(fullPath).isDirectory()) { files.push(...getAllFiles(fullPath)); } else { files.push(fullPath); } }); return files.sort(); // Sort for consistent ordering } describe("Configuration Files", () => { const rootDir = path.resolve(__dirname, "../.."); const configFiles = [ ".gitignore", "package.json", "license.txt", "tsconfig.json", "vitest.config.mts", ]; configFiles.forEach((file) => { it(`should match ${file} snapshot`, () => { const filePath = path.join(rootDir, file); const content = fs.readFileSync(filePath, "utf-8"); // For package.json, we want to ignore the version numbers as they change frequently if (file === "package.json") { const pkg = JSON.parse(content); // Replace all version numbers with '[version]' placeholder const replaceVersions = (obj: Record<string, any>) => { for (const [key, value] of Object.entries(obj)) { if (typeof value === "string" && /^\^?\d+\.\d+\.\d+/.test(value)) { obj[key] = "[version]"; } else if (typeof value === "object" && value !== null) { replaceVersions(value); } } }; replaceVersions(pkg.dependencies || {}); replaceVersions(pkg.devDependencies || {}); expect(pkg).toMatchSnapshot(); } else { expect(content).toMatchSnapshot(); } }); }); }); describe("Assets Directory", () => { const rootDir = path.resolve(__dirname, "../.."); const assetsDir = path.join(rootDir, "assets"); it("should match assets directory structure", () => { const files = getAllFiles(assetsDir); const assetsStructure = files.map((file) => { const relativePath = path.relative(assetsDir, file); const stats = fs.statSync(file); return { path: relativePath, size: stats.size, type: path.extname(file).toLowerCase() || "unknown", }; }); expect(assetsStructure).toMatchSnapshot(); }); }); describe("Husky Configuration", () => { const rootDir = path.resolve(__dirname, "../.."); const huskyDir = path.join(rootDir, ".husky"); it("should have required husky files", () => { expect(fs.existsSync(huskyDir)).toBe(true); expect(fs.existsSync(path.join(huskyDir, "_"))).toBe(true); expect(fs.existsSync(path.join(huskyDir, "pre-commit"))).toBe(true); }); it("should match husky files content", () => { const preCommitContent = fs.readFileSync( path.join(huskyDir, "pre-commit"), "utf-8" ); expect(preCommitContent).toMatchSnapshot(); }); }); // Copyright (C) 2025 Christopher White // SPDX-License-Identifier: AGPL-3.0-or-later

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/maverickg59/sushimcp'

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