From 5b221f55b84ae14caa3300a53a97a4ee981357d8 Mon Sep 17 00:00:00 2001 From: Eran Kampf <205185+ekampf@users.noreply.github.com> Date: Tue, 25 Oct 2022 09:25:41 -0700 Subject: [PATCH] Fix acc tests (#210) --- twingate/datasource_connector_test.go | 2 +- twingate/datasource_connectors_test.go | 4 +-- twingate/datasource_group_test.go | 2 +- twingate/datasource_groups_test.go | 8 ++--- twingate/datasource_remote_network_test.go | 4 +-- twingate/datasource_resource_test.go | 2 +- twingate/datasource_resources_test.go | 4 +-- twingate/datasource_user_test.go | 2 +- twingate/datasource_users_test.go | 2 +- twingate/resource_connector_test.go | 12 ++++---- twingate/resource_connector_tokens_test.go | 2 +- twingate/resource_group_test.go | 10 +++--- twingate/resource_remote_network_test.go | 10 +++--- twingate/resource_resource_test.go | 27 ++++++++-------- twingate/test_utils.go | 36 ++++++++++++++++++++++ 15 files changed, 82 insertions(+), 45 deletions(-) create mode 100644 twingate/test_utils.go diff --git a/twingate/datasource_connector_test.go b/twingate/datasource_connector_test.go index b68760cb..e079fc0f 100644 --- a/twingate/datasource_connector_test.go +++ b/twingate/datasource_connector_test.go @@ -22,7 +22,7 @@ func TestAccDatasourceTwingateConnector_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateConnector(networkName, connectorName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckOutput("my_connector", connectorName), ), }, diff --git a/twingate/datasource_connectors_test.go b/twingate/datasource_connectors_test.go index 70ec352c..e812b83b 100644 --- a/twingate/datasource_connectors_test.go +++ b/twingate/datasource_connectors_test.go @@ -23,7 +23,7 @@ func TestAccDatasourceTwingateConnectors_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateConnectors(networkName1, connectorName, networkName2, connectorName, getTestPrefix()), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testCheckOutputLength("my_connectors", 2), testCheckOutputAttr("my_connectors", 0, "name", connectorName), ), @@ -69,7 +69,7 @@ func TestAccDatasourceTwingateConnectors_emptyResult(t *testing.T) { Steps: []resource.TestStep{ { Config: testTwingateConnectorsDoesNotExists(prefix), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testCheckOutputLength("my_connectors_dcs2", 0), ), }, diff --git a/twingate/datasource_group_test.go b/twingate/datasource_group_test.go index 5c438657..2f9d0441 100644 --- a/twingate/datasource_group_test.go +++ b/twingate/datasource_group_test.go @@ -21,7 +21,7 @@ func TestAccDatasourceTwingateGroup_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateGroup(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckOutput("my_group_dg1", groupName), resource.TestCheckOutput("my_group_is_active_dg1", "true"), resource.TestCheckOutput("my_group_type_dg1", "MANUAL"), diff --git a/twingate/datasource_groups_test.go b/twingate/datasource_groups_test.go index c7ede20d..b0c6ceb1 100644 --- a/twingate/datasource_groups_test.go +++ b/twingate/datasource_groups_test.go @@ -26,7 +26,7 @@ func TestAccDatasourceTwingateGroups_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateGroups(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr(theDatasource, groupsNumber, "2"), resource.TestCheckResourceAttr(theDatasource, firstGroupName, groupName), ), @@ -64,7 +64,7 @@ func TestAccDatasourceTwingateGroups_emptyResult(t *testing.T) { Steps: []resource.TestStep{ { Config: testTwingateGroupsDoesNotExists(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.twingate_groups.out_dgs2", groupsNumber, "0"), ), }, @@ -92,7 +92,7 @@ func TestAccDatasourceTwingateGroupsWithFilters_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateGroupsWithFilters(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr(theDatasource, groupsNumber, "2"), resource.TestCheckResourceAttr(theDatasource, firstGroupName, groupName), ), @@ -189,7 +189,7 @@ func TestAccDatasourceTwingateGroups_withTwoDatasource(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateGroupsWithDatasource(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.twingate_groups.two_dgs3", firstGroupName, groupName), resource.TestCheckResourceAttr("data.twingate_groups.one_dgs3", groupsNumber, "1"), resource.TestCheckResourceAttr("data.twingate_groups.two_dgs3", groupsNumber, "2"), diff --git a/twingate/datasource_remote_network_test.go b/twingate/datasource_remote_network_test.go index e4063086..21b5eab3 100644 --- a/twingate/datasource_remote_network_test.go +++ b/twingate/datasource_remote_network_test.go @@ -22,7 +22,7 @@ func TestAccDatasourceTwingateRemoteNetwork_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateRemoteNetwork(networkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.twingate_remote_network.test_dn1_2", "name", networkName), ), }, @@ -59,7 +59,7 @@ func TestAccDatasourceTwingateRemoteNetworkByName_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateRemoteNetworkByName(networkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.twingate_remote_network.test_dn2_2", "name", networkName), ), }, diff --git a/twingate/datasource_resource_test.go b/twingate/datasource_resource_test.go index e08e9035..f957d462 100644 --- a/twingate/datasource_resource_test.go +++ b/twingate/datasource_resource_test.go @@ -22,7 +22,7 @@ func TestAccDatasourceTwingateResource_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateResource(networkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.twingate_resource.out_dr1", "name", resourceName), ), }, diff --git a/twingate/datasource_resources_test.go b/twingate/datasource_resources_test.go index c64d7855..dc89d5cc 100644 --- a/twingate/datasource_resources_test.go +++ b/twingate/datasource_resources_test.go @@ -27,7 +27,7 @@ func TestAccDatasourceTwingateResources_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateResources(networkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr(theDatasource, resourcesNumber, "2"), resource.TestCheckResourceAttr(theDatasource, firstResourceName, resourceName), ), @@ -97,7 +97,7 @@ func TestAccDatasourceTwingateResources_emptyResult(t *testing.T) { Steps: []resource.TestStep{ { Config: testTwingateResourcesDoesNotExists(resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("data.twingate_resources.out_drs2", resourcesNumber, "0"), ), }, diff --git a/twingate/datasource_user_test.go b/twingate/datasource_user_test.go index 5e4612bf..085118b4 100644 --- a/twingate/datasource_user_test.go +++ b/twingate/datasource_user_test.go @@ -25,7 +25,7 @@ func TestAccDatasourceTwingateUser_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateUser(user.ID), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckOutput("my_user_email_du1", user.Email), ), }, diff --git a/twingate/datasource_users_test.go b/twingate/datasource_users_test.go index 8c2df730..348e3715 100644 --- a/twingate/datasource_users_test.go +++ b/twingate/datasource_users_test.go @@ -16,7 +16,7 @@ func TestAccDatasourceTwingateUsers_basic(t *testing.T) { Steps: []resource.TestStep{ { Config: testDatasourceTwingateUsers(), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testCheckResourceAttrNotEqual("data.twingate_users.all", "users.#", "0"), ), }, diff --git a/twingate/resource_connector_test.go b/twingate/resource_connector_test.go index b94d3fcc..2bf18e2e 100644 --- a/twingate/resource_connector_test.go +++ b/twingate/resource_connector_test.go @@ -31,7 +31,7 @@ func TestAccRemoteConnectorCreate(t *testing.T) { Steps: []resource.TestStep{ { Config: createConnectorC1(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorExists(theResource, "twingate_remote_network.test_c1"), resource.TestCheckResourceAttrSet(theResource, "name"), ), @@ -66,7 +66,7 @@ func TestAccRemoteConnectorWithCustomName(t *testing.T) { Steps: []resource.TestStep{ { Config: createConnectorC2(remoteNetworkName, connectorName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorExists(theResource, "twingate_remote_network.test_c2"), resource.TestMatchResourceAttr(theResource, "name", regexp.MustCompile(connectorName)), ), @@ -143,7 +143,7 @@ func TestAccRemoteConnectorImport(t *testing.T) { Steps: []resource.TestStep{ { Config: createConnectorC3(remoteNetworkName, connectorName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorExists(theResource, "twingate_remote_network.test_c3"), resource.TestMatchResourceAttr(theResource, "name", testRegexp), ), @@ -183,7 +183,7 @@ func TestAccRemoteConnectorNotAllowedToChangeRemoteNetworkId(t *testing.T) { Steps: []resource.TestStep{ { Config: createConnectorC4(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorExists(theResource, "twingate_remote_network.test_c4_1"), ), }, @@ -230,7 +230,7 @@ func TestAccTwingateConnectorReCreateAfterDeletion(t *testing.T) { Steps: []resource.TestStep{ { Config: createConnectorC5(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorExists(theResource, "twingate_remote_network.test_c5"), deleteTwingateResource(theResource, connectorResourceName), ), @@ -238,7 +238,7 @@ func TestAccTwingateConnectorReCreateAfterDeletion(t *testing.T) { }, { Config: createConnectorC5(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorExists(theResource, "twingate_remote_network.test_c5"), ), }, diff --git a/twingate/resource_connector_tokens_test.go b/twingate/resource_connector_tokens_test.go index 1aa15c25..9539b5fc 100644 --- a/twingate/resource_connector_tokens_test.go +++ b/twingate/resource_connector_tokens_test.go @@ -22,7 +22,7 @@ func TestAccRemoteConnectorWithTokens(t *testing.T) { Steps: []resource.TestStep{ { Config: createConnectorTokensWithKeepers(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateConnectorTokensExists(connectorTokensResource), ), }, diff --git a/twingate/resource_group_test.go b/twingate/resource_group_test.go index 0efa1064..db36d879 100644 --- a/twingate/resource_group_test.go +++ b/twingate/resource_group_test.go @@ -26,14 +26,14 @@ func TestAccTwingateGroupCreateUpdate(t *testing.T) { Steps: []resource.TestStep{ { Config: createGroup001(groupNameBefore), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateGroupExists(theResource), resource.TestCheckResourceAttr(theResource, "name", groupNameBefore), ), }, { Config: createGroup001(groupNameAfter), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateGroupExists(theResource), resource.TestCheckResourceAttr(theResource, "name", groupNameAfter), ), @@ -64,7 +64,7 @@ func TestAccTwingateGroupDeleteNonExisting(t *testing.T) { { Config: createGroup002(groupNameBefore), Destroy: true, - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateGroupDoesNotExists("twingate_group.test002"), ), }, @@ -141,7 +141,7 @@ func TestAccTwingateGroupReCreateAfterDeletion(t *testing.T) { Steps: []resource.TestStep{ { Config: createGroup003(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateGroupExists(theResource), deleteTwingateResource(theResource, groupResourceName), ), @@ -149,7 +149,7 @@ func TestAccTwingateGroupReCreateAfterDeletion(t *testing.T) { }, { Config: createGroup003(groupName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateGroupExists(theResource), ), }, diff --git a/twingate/resource_remote_network_test.go b/twingate/resource_remote_network_test.go index 62463a1a..36b2233f 100644 --- a/twingate/resource_remote_network_test.go +++ b/twingate/resource_remote_network_test.go @@ -24,14 +24,14 @@ func TestAccTwingateRemoteNetworkCreateUpdate(t *testing.T) { Steps: []resource.TestStep{ { Config: createRemoteNetwork001(remoteNetworkNameBefore), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateRemoteNetworkExists(theResource), resource.TestCheckResourceAttr(theResource, "name", remoteNetworkNameBefore), ), }, { Config: createRemoteNetwork001(remoteNetworkNameAfter), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateRemoteNetworkExists(theResource), resource.TestCheckResourceAttr(theResource, "name", remoteNetworkNameAfter), ), @@ -62,7 +62,7 @@ func TestAccTwingateRemoteNetworkDeleteNonExisting(t *testing.T) { { Config: createRemoteNetwork002(remoteNetworkNameBefore), Destroy: true, - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateRemoteNetworkDoesNotExists("twingate_remote_network.test002"), ), }, @@ -141,7 +141,7 @@ func TestAccTwingateRemoteNetworkReCreateAfterDeletion(t *testing.T) { Steps: []resource.TestStep{ { Config: createRemoteNetwork003(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateRemoteNetworkExists(theResource), deleteTwingateResource(theResource, remoteNetworkResourceName), ), @@ -149,7 +149,7 @@ func TestAccTwingateRemoteNetworkReCreateAfterDeletion(t *testing.T) { }, { Config: createRemoteNetwork003(remoteNetworkName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateRemoteNetworkExists(theResource), ), }, diff --git a/twingate/resource_resource_test.go b/twingate/resource_resource_test.go index 162672a7..a1d57654 100644 --- a/twingate/resource_resource_test.go +++ b/twingate/resource_resource_test.go @@ -35,7 +35,7 @@ func TestAccTwingateResourceCreate(t *testing.T) { Steps: []resource.TestStep{ { Config: createResourceOnlyWithNetwork(remoteNetworkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists("twingate_resource.test1"), resource.TestCheckNoResourceAttr("twingate_resource.test1", "group_ids.#"), ), @@ -70,7 +70,7 @@ func TestAccTwingateResourceCreateWithProtocolsAndGroups(t *testing.T) { Steps: []resource.TestStep{ { Config: createResourceWithProtocolsAndGroups(remoteNetworkName, groupName1, groupName2, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists("twingate_resource.test2"), resource.TestCheckResourceAttr("twingate_resource.test2", "address", "new-acc-test.com"), resource.TestCheckResourceAttr("twingate_resource.test2", "group_ids.#", "2"), @@ -127,7 +127,7 @@ func TestAccTwingateResourceFullCreationFlow(t *testing.T) { Steps: []resource.TestStep{ { Config: resourceFullCreationFlow(remoteNetworkName, groupName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("twingate_remote_network.test3", "name", remoteNetworkName), resource.TestCheckResourceAttr("twingate_resource.test3", "name", resourceName), resource.TestMatchResourceAttr("twingate_connector_tokens.test31", "access_token", regexp.MustCompile(".*")), @@ -225,7 +225,7 @@ func TestAccTwingateResourceWithTcpDenyAllPolicy(t *testing.T) { Steps: []resource.TestStep{ { Config: createResourceWithTcpDenyAllPolicy(networkName, groupName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists("twingate_resource.test5"), resource.TestCheckResourceAttr("twingate_resource.test5", "protocols.0.tcp.0.policy", policyRestricted), ), @@ -279,7 +279,7 @@ func TestAccTwingateResourceWithUdpDenyAllPolicy(t *testing.T) { Steps: []resource.TestStep{ { Config: createResourceWithUdpDenyAllPolicy(remoteNetworkName, groupName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists("twingate_resource.test6"), resource.TestCheckResourceAttr("twingate_resource.test6", "protocols.0.udp.0.policy", policyRestricted), ), @@ -333,7 +333,7 @@ func TestAccTwingateResourceWithRestrictedPolicyAndEmptyPortsList(t *testing.T) Steps: []resource.TestStep{ { Config: createResourceWithRestrictedPolicyAndEmptyPortsList(remoteNetworkName, groupName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( resource.TestCheckResourceAttr("twingate_resource.test7", "name", resourceName), resource.TestCheckResourceAttr("twingate_resource.test7", "protocols.0.tcp.0.policy", policyRestricted), resource.TestCheckNoResourceAttr("twingate_resource.test7", "protocols.0.tcp.0.ports.#"), @@ -515,7 +515,7 @@ func TestAccTwingateResourcePortReorderingCreatesNoChanges(t *testing.T) { Steps: []resource.TestStep{ { Config: createResourceWithPortRange(remoteNetworkName, resourceName, `"82-83", "80"`), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists(theResource), resource.TestCheckResourceAttr(theResource, "protocols.0.tcp.0.ports.0", "80"), resource.TestCheckResourceAttr(theResource, "protocols.0.udp.0.ports.0", "80"), @@ -534,7 +534,7 @@ func TestAccTwingateResourcePortReorderingCreatesNoChanges(t *testing.T) { // new changes applied { Config: createResourceWithPortRange(remoteNetworkName, resourceName, `"82-83", "70"`), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists(theResource), resource.TestCheckResourceAttr(theResource, "protocols.0.tcp.0.ports.0", "70"), resource.TestCheckResourceAttr(theResource, "protocols.0.udp.0.ports.0", "70"), @@ -582,15 +582,16 @@ func TestAccTwingateResourceSetActiveStateOnUpdate(t *testing.T) { Steps: []resource.TestStep{ { Config: createResource10(remoteNetworkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists(theResource), deactivateTwingateResource(theResource), + WaitTestFunc(), testAccCheckTwingateResourceActiveState(theResource, false), ), }, { Config: createResource10(remoteNetworkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceActiveState(theResource, true), ), }, @@ -679,7 +680,7 @@ func TestAccTwingateResourceReCreateAfterDeletion(t *testing.T) { Steps: []resource.TestStep{ { Config: createResource11(remoteNetworkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists(theResource), deleteTwingateResource(theResource, resourceResourceName), ), @@ -687,7 +688,7 @@ func TestAccTwingateResourceReCreateAfterDeletion(t *testing.T) { }, { Config: createResource11(remoteNetworkName, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists(theResource), ), }, @@ -761,7 +762,7 @@ func TestAccTwingateResourceImport(t *testing.T) { Steps: []resource.TestStep{ { Config: createResource12(remoteNetworkName, groupName, groupName2, resourceName), - Check: resource.ComposeTestCheckFunc( + Check: ComposeTestCheckFunc( testAccCheckTwingateResourceExists(theResource), ), }, diff --git a/twingate/test_utils.go b/twingate/test_utils.go new file mode 100644 index 00000000..6d338441 --- /dev/null +++ b/twingate/test_utils.go @@ -0,0 +1,36 @@ +package twingate + +import ( + "fmt" + "time" + + "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" + "github.com/hashicorp/terraform-plugin-sdk/v2/terraform" +) + +const WaitDuration = 500 * time.Millisecond + +func WaitTestFunc() resource.TestCheckFunc { + return func(state *terraform.State) error { + // Sleep 500 ms + time.Sleep(WaitDuration) + + return nil + } +} + +func ComposeTestCheckFunc(fs ...resource.TestCheckFunc) resource.TestCheckFunc { //nolint:varnamelen + return func(state *terraform.State) error { + if err := WaitTestFunc()(state); err != nil { + return fmt.Errorf("WaitTestFunc error: %w", err) + } + + for i, f := range fs { + if err := f(state); err != nil { + return fmt.Errorf("check %d/%d error: %w", i+1, len(fs), err) + } + } + + return nil + } +}