Skip to main content
Glama

Terraform Registry MCP Server

by thrashr888
providerGuides.test.ts5.25 kB
import { handleProviderGuides } from "../../tools/index.js"; import { mockFetchResponse, resetFetchMocks } from "../global-mock.js"; describe("providerGuides tool", () => { beforeEach(() => { resetFetchMocks(); }); test("should list all guides when no search or guide specified", async () => { // Mock the guides list response mockFetchResponse({ ok: true, status: 200, json: () => Promise.resolve({ data: [ { id: "8419193", attributes: { title: "Using HCP Terraform's Continuous Validation feature with the AWS Provider", slug: "continuous-validation-examples" } }, { id: "8419197", attributes: { title: "Terraform AWS Provider Version 2 Upgrade Guide", slug: "version-2-upgrade" } } ] }) }); const response = await handleProviderGuides({ provider: "aws" }); const parsedContent = JSON.parse(response.content[0].text); expect(parsedContent.status).toBe("success"); expect(parsedContent.content).toContain("Provider Guides"); expect(parsedContent.content).toContain("Version Upgrade Guides"); expect(parsedContent.content).toContain("Feature & Integration Guides"); expect(parsedContent.metadata.summary.total).toBe(2); }); test("should return specific guide content when guide is specified", async () => { // Mock the guides list response mockFetchResponse({ ok: true, status: 200, json: () => Promise.resolve({ data: [ { id: "8419197", attributes: { title: "Terraform AWS Provider Version 2 Upgrade Guide", slug: "version-2-upgrade" } } ] }) }); // Mock the specific guide content response mockFetchResponse({ ok: true, status: 200, json: () => Promise.resolve({ data: { attributes: { title: "Terraform AWS Provider Version 2 Upgrade Guide", content: `--- description: |- This guide helps with upgrading to version 2 of the AWS provider. --- # Upgrading to v2.0.0 Version 2.0.0 of the AWS provider includes several breaking changes. ## Breaking Changes * Example breaking change` } } }) }); const response = await handleProviderGuides({ provider: "aws", guide: "version-2-upgrade" }); const parsedContent = JSON.parse(response.content[0].text); expect(parsedContent.status).toBe("success"); expect(parsedContent.content).toContain("Version 2.0.0"); expect(parsedContent.content).toContain("Breaking Changes"); expect(parsedContent.metadata.guide.slug).toBe("version-2-upgrade"); }); test("should filter guides when search is provided", async () => { // Mock the guides list response mockFetchResponse({ ok: true, status: 200, json: () => Promise.resolve({ data: [ { id: "8419197", attributes: { title: "Terraform AWS Provider Version 2 Upgrade Guide", slug: "version-2-upgrade" } }, { id: "8419198", attributes: { title: "Terraform AWS Provider Version 3 Upgrade Guide", slug: "version-3-upgrade" } }, { id: "8419193", attributes: { title: "Using HCP Terraform's Continuous Validation feature", slug: "continuous-validation-examples" } } ] }) }); const response = await handleProviderGuides({ provider: "aws", search: "upgrade" }); const parsedContent = JSON.parse(response.content[0].text); expect(parsedContent.status).toBe("success"); expect(parsedContent.content).toContain('Search results for: "upgrade"'); expect(parsedContent.content).toContain("Version 2 Upgrade Guide"); expect(parsedContent.content).toContain("Version 3 Upgrade Guide"); expect(parsedContent.content).not.toContain("Continuous Validation"); expect(parsedContent.metadata.summary.upgradeGuides).toBe(2); }); test("should handle errors when guides not found", async () => { // Mock a failed response mockFetchResponse({ ok: false, status: 404, statusText: "Not Found" }); const response = await handleProviderGuides({ provider: "nonexistent" }); const parsedContent = JSON.parse(response.content[0].text); expect(parsedContent.status).toBe("error"); expect(parsedContent.error).toContain("Failed to fetch guides"); }); test("should handle missing required parameters", async () => { const response = await handleProviderGuides({ provider: "" }); const parsedContent = JSON.parse(response.content[0].text); expect(parsedContent.status).toBe("error"); expect(parsedContent.error).toContain("required"); }); });

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/thrashr888/terraform-mcp-server'

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