5
5
_ "embed"
6
6
"testing"
7
7
8
- "github.com/hashicorp/terraform-plugin-framework/attr "
8
+ "github.com/hashicorp/terraform-plugin-framework/types/basetypes "
9
9
"github.com/hashicorp/terraform-plugin-go/tftypes"
10
10
"github.com/pomerium/enterprise-terraform-provider/internal/provider"
11
11
"github.com/stretchr/testify/assert"
@@ -18,33 +18,39 @@ var pplObjectOK string
18
18
func TestPolicyTypes (t * testing.T ) {
19
19
t .Parallel ()
20
20
21
+ jsonPPL := func (json string ) provider.PolicyLanguage {
22
+ ppl , err := provider.PolicyLanguageType {}.Parse (basetypes .NewStringValue (json ))
23
+ require .NoError (t , err )
24
+ return ppl
25
+ }
26
+
21
27
testCases := map [string ]struct {
22
28
in tftypes.Value
23
- expected attr. Value
29
+ expected provider. PolicyLanguage
24
30
expectedErr error
25
31
}{
26
32
"object-ok" : {
27
33
in : tftypes .NewValue (tftypes .String , pplObjectOK ),
28
- expected : provider . NewPolicyLanguageJSON (`[{"allow":{"and":[{"accept":true}]}}]` ),
34
+ expected : jsonPPL (`[{"allow":{"and":[{"accept":true}]}}]` ),
29
35
},
30
36
"null" : {
31
37
in : tftypes .NewValue (tftypes .String , nil ),
32
- expected : provider .NewPolicyLanguageJSON ( `[]` ) ,
38
+ expected : provider.PolicyLanguage {} ,
33
39
},
34
40
}
35
41
for name , testCase := range testCases {
36
42
t .Run (name , func (t * testing.T ) {
37
- p := provider.PolicyLanguageType {}
38
- got , err := p .ValueFromTerraform (context .Background (), testCase .in )
43
+ gotValue , err := provider.PolicyLanguageType {}.ValueFromTerraform (context .Background (), testCase .in )
39
44
if testCase .expectedErr != nil {
40
45
require .EqualError (t , err , testCase .expectedErr .Error ())
41
46
return
42
47
}
48
+ got , ok := gotValue .(provider.PolicyLanguage )
49
+ require .True (t , ok )
43
50
require .NoError (t , err )
44
- if ! assert .True (t , testCase .expected .Equal (got ), got ) {
45
- t .Logf ("-: %s" , testCase .expected )
46
- t .Logf ("+: %s" , got )
47
- }
51
+ equals , diag := testCase .expected .StringSemanticEquals (context .Background (), got )
52
+ assert .False (t , diag .HasError ())
53
+ assert .True (t , equals )
48
54
})
49
55
}
50
56
}
0 commit comments