diff --git a/internal/command/jsonformat/differ/differ_test.go b/internal/command/jsonformat/differ/differ_test.go index f21e491281..0bddf9a499 100644 --- a/internal/command/jsonformat/differ/differ_test.go +++ b/internal/command/jsonformat/differ/differ_test.go @@ -1428,10 +1428,8 @@ func TestValue_Outputs(t *testing.T) { }, }, validateDiff: renderers.ValidateList([]renderers.ValidateDiffFunction{ - renderers.ValidatePrimitive("old_one", nil, plans.Delete, false), - renderers.ValidatePrimitive("old_two", nil, plans.Delete, false), - renderers.ValidatePrimitive(nil, "new_one", plans.Create, false), - renderers.ValidatePrimitive(nil, "new_two", plans.Create, false), + renderers.ValidatePrimitive("old_one", "new_one", plans.Update, false), + renderers.ValidatePrimitive("old_two", "new_two", plans.Update, false), }, plans.Update, false), }, "primitive_delete": { @@ -1599,6 +1597,7 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute cty.Type validateDiff renderers.ValidateDiffFunction validateSliceDiffs []renderers.ValidateDiffFunction // Lists are special in some cases. + validateSetDiffs []renderers.ValidateDiffFunction // Sets are special in some cases. }{ "primitive_create": { input: structured.Change{ @@ -1622,6 +1621,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.String, validateDiff: renderers.ValidatePrimitive("old", "new", plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidatePrimitive("old", "new", plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive("old", nil, plans.Delete, false), renderers.ValidatePrimitive(nil, "new", plans.Create, false), }, @@ -1635,6 +1637,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.String, validateDiff: renderers.ValidatePrimitive("old", nil, plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidatePrimitive("old", nil, plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive("old", nil, plans.Delete, false), renderers.ValidatePrimitive(nil, nil, plans.Create, false), }, @@ -1648,6 +1653,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.String, validateDiff: renderers.ValidatePrimitive(nil, "new", plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidatePrimitive(nil, "new", plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive(nil, nil, plans.Delete, false), renderers.ValidatePrimitive(nil, "new", plans.Create, false), }, @@ -1680,6 +1688,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.String, validateDiff: renderers.ValidateSensitive(renderers.ValidatePrimitive("old", "new", plans.Update, false), true, true, plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidateSensitive(renderers.ValidatePrimitive("old", "new", plans.Update, false), true, true, plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidateSensitive(renderers.ValidatePrimitive("old", nil, plans.Delete, false), true, false, plans.Delete, false), renderers.ValidateSensitive(renderers.ValidatePrimitive(nil, "new", plans.Create, false), false, true, plans.Create, false), }, @@ -1702,6 +1713,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.String, validateDiff: renderers.ValidateUnknown(renderers.ValidatePrimitive("old", nil, plans.Delete, false), plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidateUnknown(renderers.ValidatePrimitive("old", nil, plans.Delete, false), plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive("old", nil, plans.Delete, false), renderers.ValidateUnknown(nil, plans.Create, false), }, @@ -1719,6 +1733,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.String, validateDiff: renderers.ValidatePrimitive("old", "new", plans.Update, true), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidatePrimitive("old", "new", plans.Update, true), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive("old", nil, plans.Delete, true), renderers.ValidatePrimitive(nil, "new", plans.Create, true), }, @@ -1739,6 +1756,9 @@ func TestValue_PrimitiveAttributes(t *testing.T) { attribute: cty.DynamicPseudoType, validateDiff: renderers.ValidatePrimitive("old", "new", plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidatePrimitive("old", "new", plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive("old", nil, plans.Delete, false), renderers.ValidatePrimitive(nil, "new", plans.Create, false), }, @@ -1754,6 +1774,12 @@ func TestValue_PrimitiveAttributes(t *testing.T) { renderers.ValidatePrimitive(nil, 4.0, plans.Create, false), plans.Update, false), validateSliceDiffs: []renderers.ValidateDiffFunction{ + renderers.ValidateTypeChange( + renderers.ValidatePrimitive("old", nil, plans.Delete, false), + renderers.ValidatePrimitive(nil, 4.0, plans.Create, false), + plans.Update, false), + }, + validateSetDiffs: []renderers.ValidateDiffFunction{ renderers.ValidatePrimitive("old", nil, plans.Delete, false), renderers.ValidatePrimitive(nil, 4.0, plans.Create, false), }, @@ -1819,7 +1845,7 @@ func TestValue_PrimitiveAttributes(t *testing.T) { } if tc.validateSliceDiffs != nil { - validate := renderers.ValidateSet(tc.validateSliceDiffs, defaultCollectionsAction, false) + validate := renderers.ValidateSet(tc.validateSetDiffs, defaultCollectionsAction, false) validate(t, ComputeDiffForAttribute(input, attribute)) return } @@ -2377,12 +2403,9 @@ func TestRelevantAttributes(t *testing.T) { // attributes. This is deliberate. "list": renderers.ValidateList([]renderers.ValidateDiffFunction{ renderers.ValidatePrimitive(0, 0, plans.NoOp, false), - renderers.ValidatePrimitive(1, nil, plans.Delete, false), - renderers.ValidatePrimitive(2, nil, plans.Delete, false), - renderers.ValidatePrimitive(3, nil, plans.Delete, false), - renderers.ValidatePrimitive(nil, 5, plans.Create, false), - renderers.ValidatePrimitive(nil, 6, plans.Create, false), - renderers.ValidatePrimitive(nil, 7, plans.Create, false), + renderers.ValidatePrimitive(1, 5, plans.Update, false), + renderers.ValidatePrimitive(2, 6, plans.Update, false), + renderers.ValidatePrimitive(3, 7, plans.Update, false), renderers.ValidatePrimitive(4, 4, plans.NoOp, false), }, plans.Update, false), }, nil, nil, nil, nil, plans.Update, false), diff --git a/internal/command/jsonformat/plan_test.go b/internal/command/jsonformat/plan_test.go index 40a648ac0d..3668b1f91a 100644 --- a/internal/command/jsonformat/plan_test.go +++ b/internal/command/jsonformat/plan_test.go @@ -2125,8 +2125,7 @@ func TestResourceChange_primitiveList(t *testing.T) { ~ id = "i-02ae66f368e8518a9" -> (known after apply) ~ list_field = [ "aaaa", - - "bbbb", - + (known after apply), + ~ "bbbb" -> (known after apply), "cccc", ] # (1 unchanged attribute hidden) @@ -6213,8 +6212,9 @@ func TestResourceChange_sensitiveVariable(t *testing.T) { ~ list_field = [ # (1 unchanged element hidden) "friends", - - (sensitive value), - + ".", + # Warning: this attribute value will no longer be marked as sensitive + # after applying this change. + ~ (sensitive value), ] ~ map_key = { # Warning: this attribute value will no longer be marked as sensitive @@ -6332,8 +6332,9 @@ func TestResourceChange_sensitiveVariable(t *testing.T) { ~ resource "test_instance" "example" { id = "i-02ae66f368e8518a9" ~ list_field = [ - - "hello", - + (sensitive value), + # Warning: this attribute value will be marked as sensitive and will not + # display in UI output after applying this change. + ~ (sensitive value), "friends", ] ~ map_key = { @@ -6468,8 +6469,7 @@ func TestResourceChange_sensitiveVariable(t *testing.T) { ~ ami = (sensitive value) id = "i-02ae66f368e8518a9" ~ list_field = [ - - (sensitive value), - + (sensitive value), + ~ (sensitive value), "friends", ] ~ map_key = {