import { describe, it, expect } from "vitest";
import {
generateK8sManifestHandler,
generateTerraformConfigHandler,
generateNginxConfigHandler,
} from "./deployment.js";
describe("Deployment Tools", () => {
describe("generateK8sManifestHandler", () => {
it("should generate k8s manifest", () => {
const result = generateK8sManifestHandler({
name: "my-app",
image: "my-image",
port: 3000,
replicas: 2,
namespace: "prod",
});
expect(result.content[0].text).toContain("kind: Deployment");
expect(result.content[0].text).toContain("image: my-image");
expect(result.content[0].text).toContain("replicas: 2");
expect(result.content[0].text).toContain("containerPort: 3000");
});
});
describe("generateTerraformConfigHandler", () => {
it("should generate aws terraform config", () => {
const result = generateTerraformConfigHandler({
provider: "aws",
resources: ["vm", "bucket"],
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("generateNginxConfigHandler", () => {
it("should generate nginx proxy config", () => {
const result = 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",
);
});
});
});