Skip to content

Commit 5e7e2a8

Browse files
ACCT-10424 use policy id state if unknown
1 parent 10cb0b7 commit 5e7e2a8

File tree

2 files changed

+25
-7
lines changed

2 files changed

+25
-7
lines changed

internal/services/api_token/resource_test.go

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package api_token_test
22

33
import (
4+
"fmt"
45
"testing"
56

67
"github.com/cloudflare/terraform-provider-cloudflare/internal/acctest"
@@ -14,21 +15,35 @@ func TestAccAPIToken_Basic(t *testing.T) {
1415
resourceID := "cloudflare_api_token." + rnd
1516
permissionID := "82e64a83756745bbbb1c9c2701bf816b" // DNS read
1617

18+
var policyId string
19+
1720
resource.Test(t, resource.TestCase{
18-
PreCheck: func() { acctest.TestAccPreCheck(t) },
21+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
1922
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
2023
Steps: []resource.TestStep{
2124
{
2225
Config: testAccCloudflareAPITokenWithoutCondition(rnd, rnd, permissionID),
2326
Check: resource.ComposeTestCheckFunc(
2427
resource.TestCheckResourceAttr(resourceID, "name", rnd),
28+
resource.TestCheckResourceAttrSet(resourceID, "policies.0.id"),
29+
resource.TestCheckResourceAttrWith(resourceID, "policies.0.id", func(value string) error {
30+
policyId = value
31+
return nil
32+
}),
2533
resource.TestCheckResourceAttr(resourceID, "policies.0.permission_groups.0.id", permissionID),
2634
),
2735
},
2836
{
2937
Config: testAccCloudflareAPITokenWithoutCondition(rnd, rnd+"-updated", permissionID),
3038
Check: resource.ComposeTestCheckFunc(
3139
resource.TestCheckResourceAttr(resourceID, "name", rnd+"-updated"),
40+
resource.TestCheckResourceAttrSet(resourceID, "policies.0.id"),
41+
resource.TestCheckResourceAttrWith(resourceID, "policies.0.id", func(value string) error {
42+
if value != policyId {
43+
return fmt.Errorf("policy ID changed from %s to %s", policyId, value)
44+
}
45+
return nil
46+
}),
3247
resource.TestCheckResourceAttr(resourceID, "policies.0.permission_groups.0.id", permissionID),
3348
),
3449
},
@@ -42,7 +57,7 @@ func TestAccAPIToken_DoesNotSetConditions(t *testing.T) {
4257
permissionID := "82e64a83756745bbbb1c9c2701bf816b" // DNS read
4358

4459
resource.Test(t, resource.TestCase{
45-
PreCheck: func() { acctest.TestAccPreCheck(t) },
60+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
4661
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
4762
Steps: []resource.TestStep{
4863
{
@@ -67,7 +82,7 @@ func TestAccAPIToken_SetIndividualCondition(t *testing.T) {
6782
permissionID := "82e64a83756745bbbb1c9c2701bf816b" // DNS read
6883

6984
resource.Test(t, resource.TestCase{
70-
PreCheck: func() { acctest.TestAccPreCheck(t) },
85+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
7186
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
7287
Steps: []resource.TestStep{
7388
{
@@ -92,7 +107,7 @@ func TestAccAPIToken_SetAllCondition(t *testing.T) {
92107
permissionID := "82e64a83756745bbbb1c9c2701bf816b" // DNS read
93108

94109
resource.Test(t, resource.TestCase{
95-
PreCheck: func() { acctest.TestAccPreCheck(t) },
110+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
96111
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
97112
Steps: []resource.TestStep{
98113
{
@@ -117,7 +132,7 @@ func TestAccAPIToken_TokenTTL(t *testing.T) {
117132
permissionID := "82e64a83756745bbbb1c9c2701bf816b" // DNS read
118133

119134
resource.Test(t, resource.TestCase{
120-
PreCheck: func() { acctest.TestAccPreCheck(t) },
135+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
121136
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
122137
Steps: []resource.TestStep{
123138
{
@@ -143,7 +158,7 @@ func TestAccAPIToken_PermissionGroupOrder(t *testing.T) {
143158
permissionID2 := "e199d584e69344eba202452019deafe3" // Disable ESC read
144159

145160
resource.Test(t, resource.TestCase{
146-
PreCheck: func() { acctest.TestAccPreCheck(t) },
161+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
147162
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
148163
Steps: []resource.TestStep{
149164
{
@@ -167,7 +182,7 @@ func TestAccAPIToken_PermissionGroupOrder(t *testing.T) {
167182
})
168183

169184
resource.Test(t, resource.TestCase{
170-
PreCheck: func() { acctest.TestAccPreCheck(t) },
185+
PreCheck: func() { acctest.TestAccPreCheck_APIToken(t) },
171186
ProtoV6ProviderFactories: acctest.TestAccProtoV6ProviderFactories,
172187
Steps: []resource.TestStep{
173188
{

internal/services/api_token/schema.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ func ResourceSchema(ctx context.Context) schema.Schema {
3737
"id": schema.StringAttribute{
3838
Description: "Policy identifier.",
3939
Computed: true,
40+
PlanModifiers: []planmodifier.String{
41+
stringplanmodifier.UseStateForUnknown(),
42+
},
4043
},
4144
"effect": schema.StringAttribute{
4245
Description: "Allow or deny operations against the resources.\nAvailable values: \"allow\", \"deny\".",

0 commit comments

Comments
 (0)