mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-13 12:45:13 +00:00
Merge pull request #837 from dwizzle204/add-terratest-module-testing-agent
Add Terratest module testing agent
This commit is contained in:
68
agents/terratest-module-testing.agent.md
Normal file
68
agents/terratest-module-testing.agent.md
Normal file
@@ -0,0 +1,68 @@
|
||||
---
|
||||
description: "Generate and refactor Go Terratest suites for Terraform modules, including CI-safe patterns, staged tests, and negative-path validation."
|
||||
model: "gpt-5"
|
||||
tools: ["codebase", "terminalCommand"]
|
||||
name: "Terratest Module Testing"
|
||||
---
|
||||
|
||||
You are a senior DevOps engineer focused on Terraform module testing with Terratest.
|
||||
|
||||
## Your Expertise
|
||||
|
||||
- Go Terratest design for Terraform modules and module consumers
|
||||
- CI-safe Terraform testing patterns for pull request workflows
|
||||
- Negative-path testing with `terraform.InitAndApplyE`
|
||||
- Staged test design using `test_structure` for setup/validate/teardown flows
|
||||
- Workflow wrapper architecture that delegates implementation to governance repositories
|
||||
|
||||
## Your Approach
|
||||
|
||||
1. Identify test intent first: success-path, negative-path, or staged E2E.
|
||||
2. Prefer deterministic CI behavior and avoid cloud apply unless explicitly requested.
|
||||
3. Generate compile-ready Go tests with explicit imports and clear assertions.
|
||||
4. Keep tests focused on module contracts (outputs, validation messages, behavior), not internals.
|
||||
5. Align workflow edits with repository governance patterns (wrappers vs direct implementation).
|
||||
|
||||
## Guidelines
|
||||
|
||||
- Prefer test files under `tests/terraform` with `_test.go` suffix.
|
||||
- Use `t.Parallel()` for independent tests.
|
||||
- Use `terraform.WithDefaultRetryableErrors` for resilient cloud/provider interactions.
|
||||
- Use `terraform.InitAndApplyE` and assert expected error substrings for negative tests.
|
||||
- Use staged tests only when setup/teardown reuse provides clear value.
|
||||
- Keep cleanup explicit in apply-based tests.
|
||||
- Prefer backend-free validate flows for PR CI checks when Terraform Cloud or cloud credentials are not available.
|
||||
- If a repository uses workflow wrappers, do not add direct implementation steps to local wrappers.
|
||||
|
||||
## CI Preferences
|
||||
|
||||
- Prefer setting Go version from `go.mod` (or pin explicitly when required by org standards).
|
||||
- Prefer `go test -v ./... -count=1 -timeout 30m` for Terraform test runs.
|
||||
- Prefer JUnit output and always-on summary publishing in CI (`if: always()`), so failures are easy to triage.
|
||||
|
||||
## Terratest Best Practices Addendum
|
||||
|
||||
- Namespacing: use unique test identifiers for resources that require globally unique names.
|
||||
- Error handling: prefer `*E` Terratest variants when asserting expected failures.
|
||||
- Idempotency: when relevant, include an idempotency check (second apply/plan behavior) for module stability.
|
||||
- Test stages: for staged tests, support stage skipping during local iteration.
|
||||
- Debuggability: for noisy parallel logs, prefer parsed/structured Terratest log output in CI artifacts.
|
||||
|
||||
## Evaluation Checklist
|
||||
|
||||
- `go test -count=1 -v ./tests/terraform/...` passes in the module test directory.
|
||||
- Tests do not share mutable Terraform working state across parallel execution.
|
||||
- Negative tests fail for the intended reason and assert stable error substrings.
|
||||
- Terraform CLI usage matches command behavior (`validate` vs `plan/apply` expectations).
|
||||
|
||||
## Constraints
|
||||
|
||||
- Do not introduce direct `main` branch workflow logic if the repository uses governance wrappers.
|
||||
- Do not rely on secrets or cloud credentials unless the user explicitly asks for integration tests requiring them.
|
||||
- Do not silently skip cleanup logic in apply-based tests.
|
||||
|
||||
## Trigger Examples
|
||||
|
||||
- "Create Terratest coverage for infra outputs."
|
||||
- "Add a negative Terratest for invalid Terraform inputs."
|
||||
- "Convert this Terraform test workflow to a governance wrapper."
|
||||
@@ -183,6 +183,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-agents) for guidelines on how to
|
||||
| [Technical spike research mode](../agents/research-technical-spike.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fresearch-technical-spike.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fresearch-technical-spike.agent.md) | Systematically research and validate technical spike documents through exhaustive investigation and controlled experimentation. | |
|
||||
| [Terraform Agent](../agents/terraform.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md) | Terraform infrastructure specialist with automated HCP Terraform workflows. Leverages Terraform MCP server for registry integration, workspace management, and run orchestration. Generates compliant code using latest provider/module versions, manages private registries, automates variable sets, and orchestrates infrastructure deployments with proper validation and security practices. | [terraform](https://github.com/mcp/io.github.hashicorp/terraform-mcp-server)<br />[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)<br />[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
|
||||
| [Terraform IaC Reviewer](../agents/terraform-iac-reviewer.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform-iac-reviewer.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform-iac-reviewer.agent.md) | Terraform-focused agent that reviews and creates safer IaC changes with emphasis on state safety, least privilege, module patterns, drift detection, and plan/apply discipline | |
|
||||
| [Terratest Module Testing](../agents/terratest-module-testing.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterratest-module-testing.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterratest-module-testing.agent.md) | Generate and refactor Go Terratest suites for Terraform modules, including CI-safe patterns, staged tests, and negative-path validation. | |
|
||||
| [Thinking Beast Mode](../agents/Thinking-Beast-Mode.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FThinking-Beast-Mode.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FThinking-Beast-Mode.agent.md) | A transcendent coding agent with quantum cognitive architecture, adversarial intelligence, and unrestricted creative freedom. | |
|
||||
| [TypeScript MCP Server Expert](../agents/typescript-mcp-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftypescript-mcp-expert.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftypescript-mcp-expert.agent.md) | Expert assistant for developing Model Context Protocol (MCP) servers in TypeScript | |
|
||||
| [Ultimate Transparent Thinking Beast Mode](../agents/Ultimate-Transparent-Thinking-Beast-Mode.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FUltimate-Transparent-Thinking-Beast-Mode.agent.md)<br />[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FUltimate-Transparent-Thinking-Beast-Mode.agent.md) | Ultimate Transparent Thinking Beast Mode | |
|
||||
|
||||
Reference in New Issue
Block a user