From d3dbfca850494cdfbac2686c7f8c08feb7365d02 Mon Sep 17 00:00:00 2001 From: Cory Monty Date: Thu, 4 Apr 2024 09:44:02 -0700 Subject: [PATCH] Adds case statement for ObjectTypeUser in ShowObjectParameter. --- pkg/acceptance/testing.go | 8 +++++ .../object_parameter_acceptance_test.go | 35 +++++++++++++++++++ pkg/sdk/parameters.go | 2 ++ 3 files changed, 45 insertions(+) diff --git a/pkg/acceptance/testing.go b/pkg/acceptance/testing.go index d6002494208..ec4d89c0ae9 100644 --- a/pkg/acceptance/testing.go +++ b/pkg/acceptance/testing.go @@ -24,6 +24,7 @@ const ( TestSchemaName = "terraform_test_schema" TestWarehouseName = "terraform_test_warehouse" TestWarehouseName2 = "terraform_test_warehouse_2" + TestUserName = "terraform_test_user" ) var ( @@ -120,6 +121,13 @@ func TestAccPreCheck(t *testing.T) { }); err != nil { t.Fatal(err) } + + userId := sdk.NewAccountObjectIdentifier(TestUserName) + if err := atc.client.Users.Create(ctx, userId, &sdk.CreateUserOptions{ + IfNotExists: sdk.Bool(true), + }); err != nil { + t.Fatal(err) + } }) } diff --git a/pkg/resources/object_parameter_acceptance_test.go b/pkg/resources/object_parameter_acceptance_test.go index 7985f14583d..6cc6483fba2 100644 --- a/pkg/resources/object_parameter_acceptance_test.go +++ b/pkg/resources/object_parameter_acceptance_test.go @@ -52,6 +52,27 @@ func TestAcc_ObjectParameterAccount(t *testing.T) { }) } +func TestAcc_UserParameter(t *testing.T) { + resource.Test(t, resource.TestCase{ + ProtoV6ProviderFactories: acc.TestAccProtoV6ProviderFactories, + TerraformVersionChecks: []tfversion.TerraformVersionCheck{ + tfversion.RequireAbove(tfversion.Version1_5_0), + }, + PreCheck: func() { acc.TestAccPreCheck(t) }, + CheckDestroy: nil, + Steps: []resource.TestStep{ + { + Config: userParameterConfigBasic("ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR", "true", acc.TestUserName), + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttr("snowflake_object_parameter.p", "key", "ENABLE_UNREDACTED_QUERY_SYNTAX_ERROR"), + resource.TestCheckResourceAttr("snowflake_object_parameter.p", "value", "true"), + resource.TestCheckResourceAttr("snowflake_object_parameter.p", "on_account", "false"), + ), + }, + }, + }) +} + func objectParameterConfigOnAccount(key, value string) string { s := ` resource "snowflake_object_parameter" "p" { @@ -76,3 +97,17 @@ resource "snowflake_object_parameter" "p" { ` return fmt.Sprintf(s, key, value, databaseName) } + +func userParameterConfigBasic(key, value, username string) string { + s := ` +resource "snowflake_object_parameter" "p" { + key = "%s" + value = "%s" + object_type = "USER" + object_identifier { + name = "%s" + } +} +` + return fmt.Sprintf(s, key, value, username) +} diff --git a/pkg/sdk/parameters.go b/pkg/sdk/parameters.go index f358df2a73d..fcff205eb7d 100644 --- a/pkg/sdk/parameters.go +++ b/pkg/sdk/parameters.go @@ -1004,6 +1004,8 @@ func (v *parameters) ShowObjectParameter(ctx context.Context, parameter ObjectPa opts.In.Task = object.Name.(SchemaObjectIdentifier) case ObjectTypeTable: opts.In.Table = object.Name.(SchemaObjectIdentifier) + case ObjectTypeUser: + opts.In.User = object.Name.(AccountObjectIdentifier) default: return nil, fmt.Errorf("unsupported object type %s", object.Name) }