## Summary - Introduces Terraform native tests (`terraform test`) alongside existing Bun tests - Migrates tests for modules: jetbrains, zed, and code-server - Removes Bun test files for these migrated modules only - Adds repo-wide test runner script for Terraform tests - Updates docs and new-module sample to reflect Terraform tests ## Transition plan - Mixed mode: Other modules retain Bun tests; CI should run both Bun and Terraform tests temporarily - Follow the linked epic to migrate remaining modules ## Test plan - Run: `./scripts/terraform_test_all.sh` (passes locally) - Bun tests still available for non-migrated modules ## Affected paths - registry/coder/modules/jetbrains/jetbrains.tftest.hcl - registry/coder/modules/zed/zed.tftest.hcl - registry/coder/modules/code-server/code-server.tftest.hcl - scripts/terraform_test_all.sh - examples/modules/MODULE_NAME.tftest.hcl - CONTRIBUTING.md Contributes to #308
| display_name | description | icon | verified | tags | |
|---|---|---|---|---|---|
| MODULE_NAME | Describe what this module does | ../../../../.icons/<A_RELEVANT_ICON>.svg | false |
|
MODULE_NAME
module "MODULE_NAME" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/NAMESPACE/MODULE_NAME/coder"
version = "1.0.0"
}
Examples
Example 1
Install the Dracula theme from OpenVSX:
module "MODULE_NAME" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/NAMESPACE/MODULE_NAME/coder"
version = "1.0.0"
agent_id = coder_agent.example.id
extensions = [
"dracula-theme.theme-dracula"
]
}
Enter the <author>.<name> into the extensions array and code-server will automatically install on start.
Example 2
Configure VS Code's settings.json file:
module "MODULE_NAME" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/NAMESPACE/MODULE_NAME/coder"
version = "1.0.0"
agent_id = coder_agent.example.id
extensions = ["dracula-theme.theme-dracula"]
settings = {
"workbench.colorTheme" = "Dracula"
}
}
Example 3
Run code-server in the background, don't fetch it from GitHub:
module "MODULE_NAME" {
source = "registry.coder.com/NAMESPACE/MODULE_NAME/coder"
version = "1.0.0"
agent_id = coder_agent.example.id
offline = true
}