From 8a263dc393c4183879d6f62320711225334f7143 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Thu, 11 Apr 2024 18:10:48 +0300 Subject: [PATCH 1/3] fix: set owner name and email to "default" Closes coder/modules#162 When the terraform plan is run, the `data.coder_workspace.me.owner_email` and `data.coder_workspace.me.owner_name` fields are blank, which causes the template build to fail. This should resolve the issue by setting those entries to a non-empty string. --- provider/workspace.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/provider/workspace.go b/provider/workspace.go index 0e1abf97..09b95a5b 100644 --- a/provider/workspace.go +++ b/provider/workspace.go @@ -35,6 +35,9 @@ func workspaceDataSource() *schema.Resource { _ = rd.Set("owner", owner) ownerEmail := os.Getenv("CODER_WORKSPACE_OWNER_EMAIL") + if ownerEmail == "" { + ownerEmail = "default" + } _ = rd.Set("owner_email", ownerEmail) ownerGroupsText := os.Getenv("CODER_WORKSPACE_OWNER_GROUPS") @@ -48,6 +51,9 @@ func workspaceDataSource() *schema.Resource { _ = rd.Set("owner_groups", ownerGroups) ownerName := os.Getenv("CODER_WORKSPACE_OWNER_NAME") + if ownerName == "" { + ownerName = "default" + } _ = rd.Set("owner_name", ownerName) ownerID := os.Getenv("CODER_WORKSPACE_OWNER_ID") From aa9f10cde28338b247955dfa618cd6930627a6b4 Mon Sep 17 00:00:00 2001 From: Muhammad Atif Ali Date: Sat, 13 Apr 2024 15:40:21 +0300 Subject: [PATCH 2/3] review suggestions --- provider/workspace.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/provider/workspace.go b/provider/workspace.go index 09b95a5b..b8ff1684 100644 --- a/provider/workspace.go +++ b/provider/workspace.go @@ -36,7 +36,7 @@ func workspaceDataSource() *schema.Resource { ownerEmail := os.Getenv("CODER_WORKSPACE_OWNER_EMAIL") if ownerEmail == "" { - ownerEmail = "default" + ownerEmail = "default@example.com" } _ = rd.Set("owner_email", ownerEmail) From fae64ac01d985e99bc957485ec3b9773db64a73e Mon Sep 17 00:00:00 2001 From: Marcin Tojek Date: Tue, 23 Apr 2024 16:29:56 +0200 Subject: [PATCH 3/3] tf level testing --- provider/workspace_test.go | 43 +++++++++++++++++++++----------------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/provider/workspace_test.go b/provider/workspace_test.go index 78aeac4b..d5866af5 100644 --- a/provider/workspace_test.go +++ b/provider/workspace_test.go @@ -6,6 +6,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" + "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "github.com/coder/terraform-provider-coder/provider" @@ -43,20 +44,30 @@ func TestWorkspace(t *testing.T) { value := attribs["transition"] require.NotNil(t, value) t.Log(value) - require.Equal(t, "8080", attribs["access_port"]) - require.Equal(t, "owner123", attribs["owner"]) - require.Equal(t, "Mr Owner", attribs["owner_name"]) - require.Equal(t, "owner123@example.com", attribs["owner_email"]) - require.Equal(t, "abc123", attribs["owner_session_token"]) - require.Equal(t, "group1", attribs["owner_groups.0"]) - require.Equal(t, "group2", attribs["owner_groups.1"]) - require.Equal(t, "templateID", attribs["template_id"]) - require.Equal(t, "template123", attribs["template_name"]) - require.Equal(t, "v1.2.3", attribs["template_version"]) + assert.Equal(t, "https://example.com:8080", attribs["access_url"]) + assert.Equal(t, "8080", attribs["access_port"]) + assert.Equal(t, "owner123", attribs["owner"]) + assert.Equal(t, "Mr Owner", attribs["owner_name"]) + assert.Equal(t, "owner123@example.com", attribs["owner_email"]) + assert.Equal(t, "group1", attribs["owner_groups.0"]) + assert.Equal(t, "group2", attribs["owner_groups.1"]) + assert.Equal(t, "templateID", attribs["template_id"]) + assert.Equal(t, "template123", attribs["template_name"]) + assert.Equal(t, "v1.2.3", attribs["template_version"]) return nil }, }}, }) +} + +func TestWorkspace_UndefinedOwner(t *testing.T) { + t.Setenv("CODER_WORKSPACE_OWNER", "owner123") + t.Setenv("CODER_WORKSPACE_OWNER_SESSION_TOKEN", "abc123") + t.Setenv("CODER_WORKSPACE_OWNER_GROUPS", `["group1", "group2"]`) + t.Setenv("CODER_WORKSPACE_TEMPLATE_ID", "templateID") + t.Setenv("CODER_WORKSPACE_TEMPLATE_NAME", "template123") + t.Setenv("CODER_WORKSPACE_TEMPLATE_VERSION", "v1.2.3") + resource.Test(t, resource.TestCase{ Providers: map[string]*schema.Provider{ "coder": provider.New(), @@ -79,15 +90,9 @@ func TestWorkspace(t *testing.T) { value := attribs["transition"] require.NotNil(t, value) t.Log(value) - require.Equal(t, "https://example.com:8080", attribs["access_url"]) - require.Equal(t, "owner123", attribs["owner"]) - require.Equal(t, "Mr Owner", attribs["owner_name"]) - require.Equal(t, "owner123@example.com", attribs["owner_email"]) - require.Equal(t, "group1", attribs["owner_groups.0"]) - require.Equal(t, "group2", attribs["owner_groups.1"]) - require.Equal(t, "templateID", attribs["template_id"]) - require.Equal(t, "template123", attribs["template_name"]) - require.Equal(t, "v1.2.3", attribs["template_version"]) + assert.Equal(t, "owner123", attribs["owner"]) + assert.Equal(t, "default@example.com", attribs["owner_email"]) + // Skip other asserts return nil }, }}, pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy