Skip to content

Commit 7b1821b

Browse files
committed
Add 'TestAccCognitoIDPManagedLoginBranding_updateSettings'.
1 parent 40de4e2 commit 7b1821b

File tree

2 files changed

+61
-37
lines changed

2 files changed

+61
-37
lines changed

internal/service/cognitoidp/managed_login_branding.go

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ import (
3030
"github.com/hashicorp/terraform-provider-aws/internal/framework"
3131
fwflex "github.com/hashicorp/terraform-provider-aws/internal/framework/flex"
3232
fwtypes "github.com/hashicorp/terraform-provider-aws/internal/framework/types"
33-
tfjson "github.com/hashicorp/terraform-provider-aws/internal/json"
3433
tfsmithy "github.com/hashicorp/terraform-provider-aws/internal/smithy"
3534
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
3635
inttypes "github.com/hashicorp/terraform-provider-aws/internal/types"
@@ -312,38 +311,17 @@ func (r *managedLoginBrandingResource) Update(ctx context.Context, request resou
312311
return
313312
}
314313

315-
if oldSettings, newSettings := fwflex.StringValueFromFramework(ctx, old.Settings), fwflex.StringValueFromFramework(ctx, new.Settings); newSettings != oldSettings {
316-
if oldSettings == "" {
317-
var err error
318-
input.Settings, err = tfsmithy.DocumentFromJSONString(newSettings, document.NewLazyDocument)
314+
if oldSettings, newSettings := fwflex.StringValueFromFramework(ctx, old.Settings), fwflex.StringValueFromFramework(ctx, new.Settings); newSettings != oldSettings && newSettings != "" {
315+
var err error
316+
input.Settings, err = tfsmithy.DocumentFromJSONString(newSettings, document.NewLazyDocument)
319317

320-
if err != nil {
321-
response.Diagnostics.AddError("creating Smithy document", err.Error())
322-
323-
return
324-
}
325-
326-
input.UseCognitoProvidedValues = false
327-
} else if newSettings != "" {
328-
// Updated settings work in a PATCH model: https://docs.aws.amazon.com/cognito/latest/developerguide/managed-login-brandingeditor.html#branding-designer-api.
329-
patch, err := tfjson.CreateMergePatchFromStrings(oldSettings, newSettings)
330-
331-
if err != nil {
332-
response.Diagnostics.AddError("creating JSON merge patch", err.Error())
333-
334-
return
335-
}
336-
337-
input.Settings, err = tfsmithy.DocumentFromJSONString(patch, document.NewLazyDocument)
338-
339-
if err != nil {
340-
response.Diagnostics.AddError("creating Smithy document", err.Error())
341-
342-
return
343-
}
318+
if err != nil {
319+
response.Diagnostics.AddError("creating Smithy document", err.Error())
344320

345-
input.UseCognitoProvidedValues = false
321+
return
346322
}
323+
324+
input.UseCognitoProvidedValues = false
347325
}
348326

349327
_, err := conn.UpdateManagedLoginBranding(ctx, &input)

internal/service/cognitoidp/managed_login_branding_test.go

Lines changed: 53 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ func TestAccCognitoIDPManagedLoginBranding_settings(t *testing.T) {
138138
CheckDestroy: testAccCheckManagedLoginBrandingDestroy(ctx),
139139
Steps: []resource.TestStep{
140140
{
141-
Config: testAccManagedLoginBrandingConfig_settings(rName),
141+
Config: testAccManagedLoginBrandingConfig_settings(rName, "LIGHT"),
142142
Check: resource.ComposeAggregateTestCheckFunc(
143143
testAccCheckManagedLoginBrandingExists(ctx, resourceName, &v),
144144
),
@@ -191,7 +191,7 @@ func TestAccCognitoIDPManagedLoginBranding_updateFromBasic(t *testing.T) {
191191
},
192192
},
193193
{
194-
Config: testAccManagedLoginBrandingConfig_settings(rName),
194+
Config: testAccManagedLoginBrandingConfig_settings(rName, "LIGHT"),
195195
Check: resource.ComposeAggregateTestCheckFunc(
196196
testAccCheckManagedLoginBrandingExists(ctx, resourceName, &v),
197197
),
@@ -222,7 +222,7 @@ func TestAccCognitoIDPManagedLoginBranding_updateToBasic(t *testing.T) {
222222
CheckDestroy: testAccCheckManagedLoginBrandingDestroy(ctx),
223223
Steps: []resource.TestStep{
224224
{
225-
Config: testAccManagedLoginBrandingConfig_settings(rName),
225+
Config: testAccManagedLoginBrandingConfig_settings(rName, "LIGHT"),
226226
Check: resource.ComposeAggregateTestCheckFunc(
227227
testAccCheckManagedLoginBrandingExists(ctx, resourceName, &v),
228228
),
@@ -255,6 +255,52 @@ func TestAccCognitoIDPManagedLoginBranding_updateToBasic(t *testing.T) {
255255
})
256256
}
257257

258+
func TestAccCognitoIDPManagedLoginBranding_updateSettings(t *testing.T) {
259+
ctx := acctest.Context(t)
260+
var v awstypes.ManagedLoginBrandingType
261+
rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix)
262+
resourceName := "aws_cognito_managed_login_branding.test"
263+
264+
resource.ParallelTest(t, resource.TestCase{
265+
PreCheck: func() { acctest.PreCheck(ctx, t); testAccPreCheckIdentityProvider(ctx, t) },
266+
ErrorCheck: acctest.ErrorCheck(t, names.CognitoIDPServiceID),
267+
ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories,
268+
CheckDestroy: testAccCheckManagedLoginBrandingDestroy(ctx),
269+
Steps: []resource.TestStep{
270+
{
271+
Config: testAccManagedLoginBrandingConfig_settings(rName, "LIGHT"),
272+
Check: resource.ComposeAggregateTestCheckFunc(
273+
testAccCheckManagedLoginBrandingExists(ctx, resourceName, &v),
274+
),
275+
ConfigPlanChecks: resource.ConfigPlanChecks{
276+
PreApply: []plancheck.PlanCheck{
277+
plancheck.ExpectResourceAction(resourceName, plancheck.ResourceActionCreate),
278+
},
279+
},
280+
ConfigStateChecks: []statecheck.StateCheck{
281+
statecheck.ExpectKnownValue(resourceName, tfjsonpath.New("settings"), knownvalue.NotNull()),
282+
statecheck.ExpectKnownValue(resourceName, tfjsonpath.New("use_cognito_provided_values"), knownvalue.Bool(false)),
283+
},
284+
},
285+
{
286+
Config: testAccManagedLoginBrandingConfig_settings(rName, "DARK"),
287+
Check: resource.ComposeAggregateTestCheckFunc(
288+
testAccCheckManagedLoginBrandingExists(ctx, resourceName, &v),
289+
),
290+
ConfigPlanChecks: resource.ConfigPlanChecks{
291+
PreApply: []plancheck.PlanCheck{
292+
plancheck.ExpectResourceAction(resourceName, plancheck.ResourceActionUpdate),
293+
},
294+
},
295+
ConfigStateChecks: []statecheck.StateCheck{
296+
statecheck.ExpectKnownValue(resourceName, tfjsonpath.New("settings"), knownvalue.NotNull()),
297+
statecheck.ExpectKnownValue(resourceName, tfjsonpath.New("use_cognito_provided_values"), knownvalue.Bool(false)),
298+
},
299+
},
300+
},
301+
})
302+
}
303+
258304
func testAccCheckManagedLoginBrandingDestroy(ctx context.Context) resource.TestCheckFunc {
259305
return func(s *terraform.State) error {
260306
conn := acctest.Provider.Meta().(*conns.AWSClient).CognitoIDPClient(ctx)
@@ -345,8 +391,8 @@ resource "aws_cognito_managed_login_branding" "test" {
345391
`)
346392
}
347393

348-
func testAccManagedLoginBrandingConfig_settings(rName string) string {
349-
return acctest.ConfigCompose(testAccManagedLoginBrandingConfig_base(rName), `
394+
func testAccManagedLoginBrandingConfig_settings(rName, colorScheme string) string {
395+
return acctest.ConfigCompose(testAccManagedLoginBrandingConfig_base(rName), fmt.Sprintf(`
350396
resource "aws_cognito_managed_login_branding" "test" {
351397
client_id = aws_cognito_user_pool_client.test.id
352398
user_pool_id = aws_cognito_user_pool.test.id
@@ -387,7 +433,7 @@ resource "aws_cognito_managed_login_branding" "test" {
387433
"sessionTimerDisplay" : "NONE"
388434
},
389435
"global" : {
390-
"colorSchemeMode" : "LIGHT",
436+
"colorSchemeMode" : %[1]q,
391437
"pageFooter" : {
392438
"enabled" : false
393439
},
@@ -804,5 +850,5 @@ resource "aws_cognito_managed_login_branding" "test" {
804850
}
805851
})
806852
}
807-
`)
853+
`, colorScheme))
808854
}

0 commit comments

Comments
 (0)