Skip to main content
Glama
infrastructure.test.ts3.17 kB
import { describe, it, expect } from "vitest"; import { generateTerraformResourceHandler, generateTerraformConfigHandler, generateK8sManifestHandler, generateObservabilityHandler, generateNginxConfigHandler, } from "./infrastructure.js"; describe("Infrastructure Tools", () => { describe("generateTerraformResourceHandler", () => { it("should generate resource", async () => { const result = await generateTerraformResourceHandler({ provider: "aws", resourceType: "s3_bucket", name: "my-bucket", properties: { bucket: "test-bucket", acl: "private" }, }); expect(result.content[0].text).toContain( 'resource "aws_s3_bucket" "my-bucket"', ); expect(result.content[0].text).toContain('bucket = "test-bucket"'); }); }); describe("generateTerraformConfigHandler", () => { it("should generate aws config", async () => { const result = await generateTerraformConfigHandler({ provider: "aws", resources: ["bucket", "vm"], region: "us-west-2", }); expect(result.content[0].text).toContain('provider "aws"'); expect(result.content[0].text).toContain('region = "us-west-2"'); expect(result.content[0].text).toContain("aws_s3_bucket"); expect(result.content[0].text).toContain("aws_instance"); }); }); describe("generateK8sManifestHandler", () => { it("should generate deployment and service", async () => { const result = await generateK8sManifestHandler({ name: "my-app", image: "nginx:latest", port: 80, replicas: 2, namespace: "prod", kind: "Deployment", }); expect(result.content[0].text).toContain("kind: Deployment"); expect(result.content[0].text).toContain("image: nginx:latest"); expect(result.content[0].text).toContain("kind: Service"); }); it("should generate custom spec", async () => { const result = await generateK8sManifestHandler({ name: "my-config", image: "", port: 0, replicas: 0, namespace: "default", kind: "ConfigMap", spec: { data: { key: "value" } }, }); expect(result.content[0].text).toContain("kind: ConfigMap"); expect(result.content[0].text).toContain('"key": "value"'); }); }); describe("generateObservabilityHandler", () => { it("should generate prometheus config", async () => { const result = await generateObservabilityHandler({ type: "prometheus", appName: "my-app", }); expect(result.content[0].text).toContain("scrape_configs:"); expect(result.content[0].text).toContain("job_name: 'my-app'"); }); }); describe("generateNginxConfigHandler", () => { it("should generate proxy config", async () => { const result = await generateNginxConfigHandler({ domain: "example.com", proxyTo: "http://localhost:3000", }); expect(result.content[0].text).toContain("server_name example.com"); expect(result.content[0].text).toContain( "proxy_pass http://localhost:3000", ); }); }); });

Latest Blog Posts

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/millsydotdev/Code-MCP'

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