@@ -4,66 +4,34 @@ import (
44 "testing"
55
66 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
7- "github.com/hexops/autogold/v2"
87 "github.com/zclconf/go-cty/cty"
9-
10- crosstests "github.com/pulumi/pulumi-terraform-bridge/v3/pkg/internal/tests/cross-tests"
118)
129
1310func TestSDKv2DetailedDiffMap (t * testing.T ) {
1411 t .Parallel ()
1512
16- res := schema.Resource {
17- Schema : map [string ]* schema.Schema {
18- "map_prop" : {
19- Type : schema .TypeMap ,
20- Optional : true ,
21- Elem : & schema.Schema {Type : schema .TypeString },
22- },
23- },
24- }
25-
26- ctyVal := func (v map [string ]string ) map [string ]cty.Value {
27- ctyMap := make (map [string ]cty.Value )
28-
13+ ctyMaker := func (v map [string ]string ) cty.Value {
2914 if len (v ) == 0 {
30- return map [string ]cty.Value {
31- "map_prop" : cty .MapValEmpty (cty .String ),
32- }
15+ return cty .MapValEmpty (cty .String )
3316 }
34-
17+ ctyMap := make ( map [ string ]cty. Value )
3518 for k , v := range v {
3619 ctyMap [k ] = cty .StringVal (v )
3720 }
38- return map [string ]cty.Value {
39- "map_prop" : cty .MapVal (ctyMap ),
40- }
21+ return cty .MapVal (ctyMap )
4122 }
4223
43- scenarios := []struct {
44- name string
45- initialValue map [string ]string
46- changeValue map [string ]string
47- }{
48- {"unchanged empty" , map [string ]string {}, map [string ]string {}},
49- {"unchanged non-empty" , map [string ]string {"key" : "val" }, map [string ]string {"key" : "val" }},
50- {"added" , map [string ]string {}, map [string ]string {"key" : "val" }},
51- {"removed" , map [string ]string {"key" : "val" }, map [string ]string {}},
52- {"value changed" , map [string ]string {"key" : "val" }, map [string ]string {"key" : "val2" }},
53- {"key changed" , map [string ]string {"key" : "val" }, map [string ]string {"key2" : "val" }},
54- }
24+ var nilVal map [string ]string
25+ schemaValueMakerPairs , scenarios := generateBaseTests (
26+ schema .TypeMap , & schema.Schema {Type : schema .TypeString }, ctyMaker ,
27+ map [string ]string {"key" : "val1" }, map [string ]string {"key" : "val2" },
28+ map [string ]string {"key" : "computedVal" }, map [string ]string {"key" : "defaultVal" }, nilVal )
5529
56- for _ , scenario := range scenarios {
57- t .Run (scenario .name , func (t * testing.T ) {
58- t .Parallel ()
59- diff := crosstests .Diff (t , & res , ctyVal (scenario .initialValue ), ctyVal (scenario .changeValue ))
60- autogold .ExpectFile (t , testOutput {
61- initialValue : scenario .initialValue ,
62- changeValue : scenario .changeValue ,
63- tfOut : diff .TFOut ,
64- pulumiOut : diff .PulumiOut ,
65- detailedDiff : diff .PulumiDiff .DetailedDiff ,
66- })
67- })
68- }
30+ scenarios = append (scenarios , diffScenario [map [string ]string ]{
31+ name : "key changed" ,
32+ initialValue : ref (map [string ]string {"key" : "val1" }),
33+ changeValue : ref (map [string ]string {"key2" : "val1" }),
34+ })
35+
36+ runSDKv2TestMatrix (t , schemaValueMakerPairs , scenarios )
6937}
0 commit comments