Files
terraform-provider-unifi/internal/provider/resource_site_test.go
Mateusz Filipowicz 5ba683fdad fix: flaky TestAccSite_basic and TestAccDataAccount_mac tests (#481)
* fix: temporarily disable CheckDestroy in TestAccSite_basic causing test flakiness

References #480

* fix: generate random name and mac in TestAccDataAccount_default and TestAccDataAccount_mac respectively to fix flakiness

References #480

* chore: disable linter on testAccCheckSiteResourceDestroy
2025-01-07 20:01:50 +11:00

77 lines
1.9 KiB
Go

package provider
import (
"context"
"fmt"
"strings"
"testing"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/terraform"
)
func TestAccSite_basic(t *testing.T) {
var siteName string
resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { preCheck(t) },
ProviderFactories: providerFactories,
// FIXME causes flaky tests. See: https://github.com/paultyng/terraform-provider-unifi/issues/480
//CheckDestroy: testAccCheckSiteResourceDestroy,
Steps: []resource.TestStep{
{
Config: testAccSiteConfig("tfacc-desc1"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr("unifi_site.test", "description", "tfacc-desc1"),
// extract siteName for future use
func(s *terraform.State) error {
siteName = s.RootModule().Resources["unifi_site.test"].Primary.Attributes["name"]
return nil
},
),
},
importStep("unifi_site.test"),
{
Config: testAccSiteConfig("tfacc-desc2"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr("unifi_site.test", "description", "tfacc-desc2"),
),
},
importStep("unifi_site.test"),
// test importing from name, not id
{
ResourceName: "unifi_site.test",
ImportStateIdFunc: func(*terraform.State) (string, error) {
return siteName, nil
},
ImportState: true,
ImportStateVerify: true,
},
},
})
}
//nolint:unused
func testAccCheckSiteResourceDestroy(s *terraform.State) error {
sites, err := testClient.ListSites(context.Background())
if err != nil {
return err
}
for _, site := range sites {
if strings.HasPrefix(site.Description, "tfacc-") {
return fmt.Errorf("site not destroyed")
}
}
return nil
}
func testAccSiteConfig(desc string) string {
return fmt.Sprintf(`
resource "unifi_site" "test" {
description = %q
}
`, desc)
}