Skip to content

Commit ce6fd70

Browse files
committed
add example
1 parent 41f4ebd commit ce6fd70

File tree

4 files changed

+98
-4
lines changed

4 files changed

+98
-4
lines changed

examples/resources/coder_agent/resource.tf

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ resource "coder_agent" "dev" {
55
os = "linux"
66
arch = "amd64"
77
dir = "/workspace"
8+
display_apps {
9+
vscode = true
10+
vscode_insiders = false
11+
web_terminal = true
12+
ssh_helper = false
13+
}
814
}
915

1016
resource "kubernetes_pod" "dev" {

provider/agent.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ func agentResource() *schema.Resource {
3838
return diag.FromErr(err)
3939
}
4040
}
41-
4241
return updateInitScript(resourceData, i)
4342
},
4443
ReadWithoutTimeout: func(ctx context.Context, resourceData *schema.ResourceData, i interface{}) diag.Diagnostics {

provider/agent_test.go

Lines changed: 78 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import (
55
"regexp"
66
"testing"
77

8-
"github.com/coder/terraform-provider-coder/provider"
98
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
109
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1110
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
1211
"github.com/stretchr/testify/require"
12+
13+
"github.com/coder/terraform-provider-coder/provider"
1314
)
1415

1516
func TestAgent(t *testing.T) {
@@ -249,7 +250,7 @@ func TestAgent_Metadata(t *testing.T) {
249250
})
250251
}
251252

252-
func TestAgent_DefaultApps(t *testing.T) {
253+
func TestAgent_DisplayApps(t *testing.T) {
253254
t.Parallel()
254255
t.Run("OK", func(t *testing.T) {
255256
resource.Test(t, resource.TestCase{
@@ -302,7 +303,52 @@ func TestAgent_DefaultApps(t *testing.T) {
302303
},
303304
}},
304305
})
306+
})
307+
308+
t.Run("Subset", func(t *testing.T) {
309+
resource.Test(t, resource.TestCase{
310+
Providers: map[string]*schema.Provider{
311+
"coder": provider.New(),
312+
},
313+
IsUnitTest: true,
314+
Steps: []resource.TestStep{{
315+
// Test the fields with non-default values.
316+
Config: `
317+
provider "coder" {
318+
url = "https://example.com"
319+
}
320+
resource "coder_agent" "dev" {
321+
os = "linux"
322+
arch = "amd64"
323+
display_apps {
324+
vscode_insiders = true
325+
web_terminal = true
326+
}
327+
}
328+
`,
329+
Check: func(state *terraform.State) error {
330+
require.Len(t, state.Modules, 1)
331+
require.Len(t, state.Modules[0].Resources, 1)
305332

333+
resource := state.Modules[0].Resources["coder_agent.dev"]
334+
require.NotNil(t, resource)
335+
336+
t.Logf("resource: %v", resource.Primary.Attributes)
337+
338+
for _, app := range []string{
339+
"web_terminal",
340+
"vscode_insiders",
341+
"vscode",
342+
"port_forwarding_helper",
343+
"ssh_helper",
344+
} {
345+
key := fmt.Sprintf("display_apps.0.%s", app)
346+
require.Equal(t, "true", resource.Primary.Attributes[key])
347+
}
348+
return nil
349+
},
350+
}},
351+
})
306352
})
307353

308354
// Assert all the defaults are set correctly.
@@ -350,4 +396,34 @@ func TestAgent_DefaultApps(t *testing.T) {
350396
}},
351397
})
352398
})
399+
400+
t.Run("InvalidApp", func(t *testing.T) {
401+
resource.Test(t, resource.TestCase{
402+
Providers: map[string]*schema.Provider{
403+
"coder": provider.New(),
404+
},
405+
IsUnitTest: true,
406+
Steps: []resource.TestStep{{
407+
// Test the fields with non-default values.
408+
Config: `
409+
provider "coder" {
410+
url = "https://example.com"
411+
}
412+
resource "coder_agent" "dev" {
413+
os = "linux"
414+
arch = "amd64"
415+
display_apps {
416+
fake_app = false
417+
vscode_insiders = true
418+
web_terminal = false
419+
port_forwarding_helper = false
420+
ssh_helper = false
421+
}
422+
}
423+
`,
424+
ExpectError: regexp.MustCompile(`An argument named "fake_app" is not expected here.`),
425+
}},
426+
})
427+
})
428+
353429
}

provider/examples_test.go

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,28 @@ import (
44
"os"
55
"testing"
66

7-
"github.com/coder/terraform-provider-coder/provider"
87
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
98
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
109
"github.com/stretchr/testify/require"
10+
11+
"github.com/coder/terraform-provider-coder/provider"
1112
)
1213

1314
func TestExamples(t *testing.T) {
1415
t.Parallel()
1516

17+
t.Run("coder_agent", func(t *testing.T) {
18+
resource.Test(t, resource.TestCase{
19+
Providers: map[string]*schema.Provider{
20+
"coder": provider.New(),
21+
},
22+
IsUnitTest: true,
23+
Steps: []resource.TestStep{{
24+
Config: mustReadFile(t, "../examples/resources/coder_parameter/resource.tf"),
25+
}},
26+
})
27+
})
28+
1629
t.Run("coder_parameter", func(t *testing.T) {
1730
t.Parallel()
1831

0 commit comments

Comments
 (0)