diff --git a/pkg/tests/detailed_diff_set_test.go b/pkg/tests/detailed_diff_set_test.go index 53103a71c..05ba00159 100644 --- a/pkg/tests/detailed_diff_set_test.go +++ b/pkg/tests/detailed_diff_set_test.go @@ -777,7 +777,7 @@ Plan: 0 to add, 1 to change, 0 to destroy. }) } -func TestDetailedDiffSetCrossTest(t *testing.T) { +func TestDetailedDiffSet(t *testing.T) { t.Parallel() attributeSchema := schema.Resource{ @@ -823,6 +823,24 @@ func TestDetailedDiffSetCrossTest(t *testing.T) { } blockSchemaForceNew := schema.Resource{ + Schema: map[string]*schema.Schema{ + "test": { + Type: schema.TypeSet, + Optional: true, + ForceNew: true, + Elem: &schema.Resource{ + Schema: map[string]*schema.Schema{ + "nested": { + Type: schema.TypeString, + Optional: true, + }, + }, + }, + }, + }, + } + + blockSchemaNestedForceNew := schema.Resource{ Schema: map[string]*schema.Schema{ "test": { Type: schema.TypeSet, @@ -872,17 +890,27 @@ func TestDetailedDiffSetCrossTest(t *testing.T) { return cty.ListVal(slice) } - schemaValueMakerPairs := []struct { + noForceNewSchemaValueMakerPairs := []struct { name string res schema.Resource valueMaker func(*[]string) cty.Value }{ {"attribute no force new", attributeSchema, attrList}, - {"attribute force new", attributeSchemaForceNew, attrList}, {"block no force new", blockSchema, nestedAttrList}, - {"block force new", blockSchemaForceNew, nestedAttrList}, } + forceNewSchemaValueMakerPairs := []struct { + name string + res schema.Resource + valueMaker func(*[]string) cty.Value + }{ + {"attribute force new", attributeSchemaForceNew, attrList}, + {"block top level force new", blockSchemaForceNew, nestedAttrList}, + {"block nested force new", blockSchemaNestedForceNew, nestedAttrList}, + } + + schemaValueMakerPairs := append(noForceNewSchemaValueMakerPairs, forceNewSchemaValueMakerPairs...) + scenarios := []struct { name string initialValue *[]string @@ -916,7 +944,6 @@ func TestDetailedDiffSetCrossTest(t *testing.T) { {"added end unordered", &[]string{"val2", "val3"}, &[]string{"val2", "val3", "val1"}}, {"same element updated", &[]string{"val1", "val2", "val3"}, &[]string{"val1", "val4", "val3"}}, - {"same element updated unordered", &[]string{"val2", "val3", "val1"}, &[]string{"val2", "val4", "val1"}}, {"shuffled", &[]string{"val1", "val2", "val3"}, &[]string{"val3", "val1", "val2"}}, {"shuffled unordered", &[]string{"val2", "val3", "val1"}, &[]string{"val3", "val1", "val2"}}, @@ -933,6 +960,14 @@ func TestDetailedDiffSetCrossTest(t *testing.T) { {"two added", &[]string{"val1", "val2"}, &[]string{"val1", "val2", "val3", "val4"}}, {"two removed", &[]string{"val1", "val2", "val3", "val4"}, &[]string{"val1", "val2"}}, + } + + extraScenarios := []struct { + name string + initialValue *[]string + changeValue *[]string + }{ + {"same element updated unordered", &[]string{"val2", "val3", "val1"}, &[]string{"val2", "val4", "val1"}}, {"two added and two removed", &[]string{"val1", "val2", "val3", "val4"}, &[]string{"val1", "val2", "val5", "val6"}}, {"two added and two removed shuffled, one overlaps", &[]string{"val1", "val2", "val3", "val4"}, &[]string{"val1", "val5", "val6", "val2"}}, {"two added and two removed shuffled, no overlaps", &[]string{"val1", "val2", "val3", "val4"}, &[]string{"val5", "val6", "val1", "val2"}}, @@ -947,24 +982,41 @@ func TestDetailedDiffSetCrossTest(t *testing.T) { detailedDiff map[string]any } + runTest := func(t *testing.T, schema schema.Resource, valueMaker func(*[]string) cty.Value, val1 *[]string, val2 *[]string) { + initialValue := valueMaker(val1) + changeValue := valueMaker(val2) + + diff := crosstests.Diff(t, &schema, map[string]cty.Value{"test": initialValue}, map[string]cty.Value{"test": changeValue}) + + autogold.ExpectFile(t, testOutput{ + initialValue: val1, + changeValue: val2, + tfOut: diff.TFOut, + pulumiOut: diff.PulumiOut, + detailedDiff: diff.PulumiDiff.DetailedDiff, + }) + } + for _, schemaValueMakerPair := range schemaValueMakerPairs { t.Run(schemaValueMakerPair.name, func(t *testing.T) { t.Parallel() for _, scenario := range scenarios { t.Run(scenario.name, func(t *testing.T) { t.Parallel() - initialValue := schemaValueMakerPair.valueMaker(scenario.initialValue) - changeValue := schemaValueMakerPair.valueMaker(scenario.changeValue) - - diff := crosstests.Diff(t, &schemaValueMakerPair.res, map[string]cty.Value{"test": initialValue}, map[string]cty.Value{"test": changeValue}) - - autogold.ExpectFile(t, testOutput{ - initialValue: scenario.initialValue, - changeValue: scenario.changeValue, - tfOut: diff.TFOut, - pulumiOut: diff.PulumiOut, - detailedDiff: diff.PulumiDiff.DetailedDiff, - }) + runTest(t, schemaValueMakerPair.res, schemaValueMakerPair.valueMaker, scenario.initialValue, scenario.changeValue) + }) + } + }) + } + + // TODO[pulumi/pulumi-terraform-bridge#2726]: These tests fail to produce the correct replacement plan + for _, schemaValueMakerPair := range noForceNewSchemaValueMakerPairs { + t.Run(schemaValueMakerPair.name, func(t *testing.T) { + t.Parallel() + for _, scenario := range extraScenarios { + t.Run(scenario.name, func(t *testing.T) { + t.Parallel() + runTest(t, schemaValueMakerPair.res, schemaValueMakerPair.valueMaker, scenario.initialValue, scenario.changeValue) }) } }) diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/added_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/added_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_empty_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_empty_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_empty_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_empty_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_non-null_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_non-null_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_non-null_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_non-null_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_null_to_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_null_to_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_null_to_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_null_to_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_null_to_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_null_to_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/changed_null_to_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/changed_null_to_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/removed_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/removed_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/same_element_updated.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/same_element_updated.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/same_element_updated.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/same_element_updated.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/same_element_updated_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/same_element_updated_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/same_element_updated_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/same_element_updated_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_with_duplicates_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_with_duplicates_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/shuffled_with_duplicates_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/shuffled_with_duplicates_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/unchanged_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/unchanged_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/unchanged_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/unchanged_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/unchanged_non-empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/unchanged_non-empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/unchanged_non-empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/unchanged_non-empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/unchanged_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/unchanged_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_force_new/unchanged_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_force_new/unchanged_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/added_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/added_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_empty_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_empty_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_empty_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_empty_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_non-null_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_non-null_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_non-null_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_non-null_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_null_to_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_null_to_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_null_to_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_null_to_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_null_to_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_null_to_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/changed_null_to_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/changed_null_to_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/removed_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/removed_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/same_element_updated.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/same_element_updated.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/same_element_updated.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/same_element_updated.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/same_element_updated_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/same_element_updated_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/same_element_updated_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/same_element_updated_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_with_duplicates_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_with_duplicates_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/shuffled_with_duplicates_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/shuffled_with_duplicates_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/unchanged_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/unchanged_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/unchanged_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/unchanged_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/unchanged_non-empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/unchanged_non-empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/unchanged_non-empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/unchanged_non-empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/unchanged_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/unchanged_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/attribute_no_force_new/unchanged_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/attribute_no_force_new/unchanged_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/added_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/added_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_empty_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_empty_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_empty_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_empty_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_non-null_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_non-null_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_non-null_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_non-null_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_null_to_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_null_to_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_null_to_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_null_to_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_null_to_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_null_to_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/changed_null_to_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/changed_null_to_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/removed_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/removed_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/same_element_updated.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/same_element_updated.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/same_element_updated.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/same_element_updated.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/same_element_updated_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/same_element_updated_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/same_element_updated_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/same_element_updated_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_with_duplicates_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_with_duplicates_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/shuffled_with_duplicates_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/shuffled_with_duplicates_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/unchanged_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/unchanged_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/unchanged_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/unchanged_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/unchanged_non-empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/unchanged_non-empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/unchanged_non-empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/unchanged_non-empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/unchanged_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/unchanged_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_force_new/unchanged_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_nested_force_new/unchanged_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/added_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/added_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_empty_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_empty_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_empty_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_empty_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_non-null_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_non-null_to_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_non-null_to_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_non-null_to_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_null_to_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_null_to_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_null_to_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_null_to_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_null_to_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_null_to_non-null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/changed_null_to_non-null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/changed_null_to_non-null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_end_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_end_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_end_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_front_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_front_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_front_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_middle_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/removed_middle_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/removed_middle_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/same_element_updated.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/same_element_updated.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/same_element_updated.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/same_element_updated.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/same_element_updated_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/same_element_updated_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/same_element_updated_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/same_element_updated_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_added_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_added_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_added_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_added_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_added_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_added_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_added_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_added_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_added_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_removed_end.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_removed_end.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_removed_end.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_removed_front.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_removed_front.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_removed_front.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_removed_middle.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_removed_middle.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_removed_middle.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_with_duplicates_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_with_duplicates_unordered.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/shuffled_with_duplicates_unordered.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/shuffled_with_duplicates_unordered.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_removed.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/two_removed.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/two_removed.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/unchanged_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/unchanged_empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/unchanged_empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/unchanged_empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/unchanged_non-empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/unchanged_non-empty.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/unchanged_non-empty.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/unchanged_non-empty.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/unchanged_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/unchanged_null.golden similarity index 100% rename from pkg/tests/testdata/TestDetailedDiffSetCrossTest/block_no_force_new/unchanged_null.golden rename to pkg/tests/testdata/TestDetailedDiffSet/block_no_force_new/unchanged_null.golden diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added.golden new file mode 100644 index 000000000..10d82d99a --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added.golden @@ -0,0 +1,39 @@ +tests.testOutput{ + initialValue: &[]string{}, + changeValue: &[]string{"value"}, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "value" + } + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + + tests: [ + + [0]: { + + nested : "value" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_end.golden new file mode 100644 index 000000000..3e7a81565 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_end.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + }, + changeValue: &[]string{ + "val1", + "val2", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val3" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [2]: { + + nested : "val3" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_end_unordered.golden new file mode 100644 index 000000000..4f1b9a49b --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_end_unordered.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + }, + changeValue: &[]string{ + "val2", + "val3", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val1" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [2]: { + + nested : "val1" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_front.golden new file mode 100644 index 000000000..66286b3f2 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_front.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + }, + changeValue: &[]string{ + "val1", + "val2", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val1" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [0]: { + + nested : "val1" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_front_unordered.golden new file mode 100644 index 000000000..fc91a82a2 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_front_unordered.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val3", + "val1", + }, + changeValue: &[]string{ + "val2", + "val3", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val2" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [0]: { + + nested : "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_middle.golden new file mode 100644 index 000000000..6500bba0b --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_middle.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val3", + }, + changeValue: &[]string{ + "val1", + "val2", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val2" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [1]: { + + nested : "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_middle_unordered.golden new file mode 100644 index 000000000..7f3d1108f --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/added_middle_unordered.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val1", + }, + changeValue: &[]string{ + "val2", + "val3", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val3" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [1]: { + + nested : "val3" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_empty_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_empty_to_null.golden new file mode 100644 index 000000000..7bae19762 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_empty_to_null.golden @@ -0,0 +1,15 @@ +tests.testOutput{ + initialValue: &[]string{}, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_non-null.golden new file mode 100644 index 000000000..0d933f20b --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_non-null.golden @@ -0,0 +1,44 @@ +tests.testOutput{ + initialValue: &[]string{ + "value", + }, + changeValue: &[]string{"value1"}, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "value" -> null + } + + test { + + nested = "value1" + } + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + ~ crossprovider:index/testRes:TestRes: (update) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + ~ [0]: { + ~ nested: "value" => "value1" + } + ] +Resources: + ~ 1 to update + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0].nested": map[string]interface{}{"kind": "UPDATE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_non-null_to_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_non-null_to_null.golden new file mode 100644 index 000000000..8ea0f409e --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_non-null_to_null.golden @@ -0,0 +1,40 @@ +tests.testOutput{ + initialValue: &[]string{ + "value", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "value" -> null + } + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + - tests: [ + - [0]: { + - nested: "value" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_null_to_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_null_to_empty.golden new file mode 100644 index 000000000..9589fbdf0 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_null_to_empty.golden @@ -0,0 +1,15 @@ +tests.testOutput{ + changeValue: &[]string{}, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_null_to_non-null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_null_to_non-null.golden new file mode 100644 index 000000000..c6125570d --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/changed_null_to_non-null.golden @@ -0,0 +1,40 @@ +tests.testOutput{ + changeValue: &[]string{ + "value", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "value" + } + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + + tests: [ + + [0]: { + + nested : "value" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed.golden new file mode 100644 index 000000000..bce9459bf --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed.golden @@ -0,0 +1,41 @@ +tests.testOutput{ + initialValue: &[]string{ + "value", + }, + changeValue: &[]string{}, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "value" -> null + } + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + - tests: [ + - [0]: { + - nested: "value" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_end.golden new file mode 100644 index 000000000..b9b27b7bb --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_end.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val1", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val3" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [2]: { + - nested: "val3" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[2]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_end_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_end_unordered.golden new file mode 100644 index 000000000..3d59d39ff --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_end_unordered.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + "val1", + }, + changeValue: &[]string{ + "val2", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val1" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [0]: { + - nested: "val1" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_front.golden new file mode 100644 index 000000000..b166de593 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_front.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val2", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val1" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [0]: { + - nested: "val1" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_front_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_front_unordered.golden new file mode 100644 index 000000000..b32adae12 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_front_unordered.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + "val1", + }, + changeValue: &[]string{ + "val3", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val2" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [1]: { + - nested: "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_middle.golden new file mode 100644 index 000000000..43d40629c --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_middle.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val1", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val2" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [1]: { + - nested: "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_middle_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_middle_unordered.golden new file mode 100644 index 000000000..53f28a103 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/removed_middle_unordered.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val3", + "val1", + "val2", + }, + changeValue: &[]string{ + "val3", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val2" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [1]: { + - nested: "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/same_element_updated.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/same_element_updated.golden new file mode 100644 index 000000000..6e47be3c9 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/same_element_updated.golden @@ -0,0 +1,52 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val1", + "val4", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "val2" -> null + } + + test { + + nested = "val4" + } + + # (2 unchanged blocks hidden) + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + ~ crossprovider:index/testRes:TestRes: (update) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + ~ [1]: { + ~ nested: "val2" => "val4" + } + ] +Resources: + ~ 1 to update + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1].nested": map[string]interface{}{"kind": "UPDATE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/same_element_updated_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/same_element_updated_unordered.golden new file mode 100644 index 000000000..24a6cb727 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/same_element_updated_unordered.golden @@ -0,0 +1,58 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + "val1", + }, + changeValue: &[]string{ + "val2", + "val4", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "val3" -> null + } + + test { + + nested = "val4" + } + + # (2 unchanged blocks hidden) + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [1]: { + + nested : "val4" + } + - [2]: { + - nested: "val3" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}, + "tests[2]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled.golden new file mode 100644 index 000000000..b22444299 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled.golden @@ -0,0 +1,24 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val3", + "val1", + "val2", + }, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_end.golden new file mode 100644 index 000000000..37ea56333 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_end.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + }, + changeValue: &[]string{ + "val2", + "val1", + "val3", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val3" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [2]: { + + nested : "val3" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_front.golden new file mode 100644 index 000000000..0f837543f --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_front.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + }, + changeValue: &[]string{ + "val1", + "val3", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val1" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [0]: { + + nested : "val1" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_middle.golden new file mode 100644 index 000000000..1eafb16ce --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_added_middle.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val3", + }, + changeValue: &[]string{ + "val3", + "val2", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val2" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [1]: { + + nested : "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_end.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_end.golden new file mode 100644 index 000000000..b7c1fcc2e --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_end.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val2", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val3" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [2]: { + - nested: "val3" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[2]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_front.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_front.golden new file mode 100644 index 000000000..7f391ace8 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_front.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val3", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val1" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [0]: { + - nested: "val1" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[0]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_middle.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_middle.golden new file mode 100644 index 000000000..a172a3cf2 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_removed_middle.golden @@ -0,0 +1,48 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val3", + "val1", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val2" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [1]: { + - nested: "val2" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{"tests[1]": map[string]interface{}{"kind": "DELETE_REPLACE"}}, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_unordered.golden new file mode 100644 index 000000000..d98c38179 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_unordered.golden @@ -0,0 +1,24 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + "val1", + }, + changeValue: &[]string{ + "val3", + "val1", + "val2", + }, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_with_duplicates.golden new file mode 100644 index 000000000..09d74fe9c --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_with_duplicates.golden @@ -0,0 +1,25 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + }, + changeValue: &[]string{ + "val3", + "val1", + "val2", + "val3", + }, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_with_duplicates_unordered.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_with_duplicates_unordered.golden new file mode 100644 index 000000000..1011e92c5 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/shuffled_with_duplicates_unordered.golden @@ -0,0 +1,25 @@ +tests.testOutput{ + initialValue: &[]string{ + "val2", + "val3", + "val1", + }, + changeValue: &[]string{ + "val3", + "val1", + "val2", + "val3", + }, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added.golden new file mode 100644 index 000000000..245630f95 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added.golden @@ -0,0 +1,58 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + }, + changeValue: &[]string{ + "val1", + "val2", + "val3", + "val4", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + + test { # forces replacement + + nested = "val3" + } + + test { # forces replacement + + nested = "val4" + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [2]: { + + nested : "val3" + } + + [3]: { + + nested : "val4" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[2]": map[string]interface{}{"kind": "ADD_REPLACE"}, + "tests[3]": map[string]interface{}{"kind": "ADD_REPLACE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed.golden new file mode 100644 index 000000000..7fb5ca1ca --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed.golden @@ -0,0 +1,66 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + "val4", + }, + changeValue: &[]string{ + "val1", + "val2", + "val5", + "val6", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "val3" -> null + } + - test { + - nested = "val4" -> null + } + + test { + + nested = "val5" + } + + test { + + nested = "val6" + } + + # (2 unchanged blocks hidden) + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + ~ crossprovider:index/testRes:TestRes: (update) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + ~ [2]: { + ~ nested: "val3" => "val5" + } + ~ [3]: { + ~ nested: "val4" => "val6" + } + ] +Resources: + ~ 1 to update + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[2].nested": map[string]interface{}{"kind": "UPDATE"}, + "tests[3].nested": map[string]interface{}{"kind": "UPDATE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden new file mode 100644 index 000000000..f14f7acf2 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_no_overlaps.golden @@ -0,0 +1,74 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + "val4", + }, + changeValue: &[]string{ + "val5", + "val6", + "val1", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "val3" -> null + } + - test { + - nested = "val4" -> null + } + + test { + + nested = "val5" + } + + test { + + nested = "val6" + } + + # (2 unchanged blocks hidden) + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [0]: { + + nested : "val5" + } + + [1]: { + + nested : "val6" + } + - [2]: { + - nested: "val3" + } + - [3]: { + - nested: "val4" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[0]": map[string]interface{}{"kind": "ADD_REPLACE"}, + "tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}, + "tests[2]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + "tests[3]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden new file mode 100644 index 000000000..01e7fd027 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_one_overlaps.golden @@ -0,0 +1,70 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + "val4", + }, + changeValue: &[]string{ + "val1", + "val5", + "val6", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "val3" -> null + } + - test { + - nested = "val4" -> null + } + + test { + + nested = "val5" + } + + test { + + nested = "val6" + } + + # (2 unchanged blocks hidden) + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [1]: { + + nested : "val5" + } + ~ [2]: { + ~ nested: "val3" => "val6" + } + - [3]: { + - nested: "val4" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}, + "tests[2].nested": map[string]interface{}{"kind": "UPDATE"}, + "tests[3]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden new file mode 100644 index 000000000..214c2f28b --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_added_and_two_removed_shuffled,_with_duplicates.golden @@ -0,0 +1,72 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + "val4", + }, + changeValue: &[]string{ + "val1", + "val5", + "val6", + "val2", + "val1", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: + ~ update in-place + +Terraform will perform the following actions: + + # crossprovider_test_res.example will be updated in-place + ~ resource "crossprovider_test_res" "example" { + id = "newid" + + - test { + - nested = "val3" -> null + } + - test { + - nested = "val4" -> null + } + + test { + + nested = "val5" + } + + test { + + nested = "val6" + } + + # (2 unchanged blocks hidden) + } + +Plan: 0 to add, 1 to change, 0 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + + [1]: { + + nested : "val5" + } + ~ [2]: { + ~ nested: "val3" => "val6" + } + - [3]: { + - nested: "val4" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[1]": map[string]interface{}{"kind": "ADD_REPLACE"}, + "tests[2].nested": map[string]interface{}{"kind": "UPDATE"}, + "tests[3]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_removed.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_removed.golden new file mode 100644 index 000000000..751e8ad77 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/two_removed.golden @@ -0,0 +1,58 @@ +tests.testOutput{ + initialValue: &[]string{ + "val1", + "val2", + "val3", + "val4", + }, + changeValue: &[]string{ + "val1", + "val2", + }, + tfOut: ` +Terraform used the selected providers to generate the following execution +plan. Resource actions are indicated with the following symbols: ++/- create replacement and then destroy + +Terraform will perform the following actions: + + # crossprovider_test_res.example must be replaced ++/- resource "crossprovider_test_res" "example" { + ~ id = "newid" -> (known after apply) + + - test { # forces replacement + - nested = "val3" -> null + } + - test { # forces replacement + - nested = "val4" -> null + } + + # (2 unchanged blocks hidden) + } + +Plan: 1 to add, 0 to change, 1 to destroy. + +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] + +-crossprovider:index/testRes:TestRes: (replace) + [id=newid] + [urn=urn:pulumi:test::project::crossprovider:index/testRes:TestRes::example] + ~ tests: [ + - [2]: { + - nested: "val3" + } + - [3]: { + - nested: "val4" + } + ] +Resources: + +-1 to replace + 1 unchanged +`, + detailedDiff: map[string]interface{}{ + "tests[2]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + "tests[3]": map[string]interface{}{"kind": "DELETE_REPLACE"}, + }, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_empty.golden new file mode 100644 index 000000000..7d07227be --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_empty.golden @@ -0,0 +1,16 @@ +tests.testOutput{ + initialValue: &[]string{}, + changeValue: &[]string{}, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_non-empty.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_non-empty.golden new file mode 100644 index 000000000..a87f03643 --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_non-empty.golden @@ -0,0 +1,18 @@ +tests.testOutput{ + initialValue: &[]string{ + "value", + }, + changeValue: &[]string{"value"}, + tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, + pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`, +} diff --git a/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_null.golden b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_null.golden new file mode 100644 index 000000000..a53fac34d --- /dev/null +++ b/pkg/tests/testdata/TestDetailedDiffSet/block_top_level_force_new/unchanged_null.golden @@ -0,0 +1,11 @@ +tests.testOutput{tfOut: ` +No changes. Your infrastructure matches the configuration. + +Terraform has compared your real infrastructure against your configuration +and found no differences, so no changes are needed. +`, pulumiOut: `Previewing update (test): + pulumi:pulumi:Stack: (same) + [urn=urn:pulumi:test::project::pulumi:pulumi:Stack::project-test] +Resources: + 2 unchanged +`}