Files
terraform-provider-unifi/internal/provider/acctest/resource_setting_locale_test.go
Mateusz Filipowicz f815ffef79 feat: add locale setting resource support with unifi_setting_locale resource (#34)
* feat: add locale setting resource support with `unifi_setting_locale` resource

* lint
2025-03-01 18:03:58 +01:00

71 lines
2.4 KiB
Go

package acctest
import (
"fmt"
pt "github.com/filipowm/terraform-provider-unifi/internal/provider/testing"
"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/hashicorp/terraform-plugin-testing/plancheck"
"regexp"
"sync"
"testing"
)
var settingLocaleLock = &sync.Mutex{}
func TestAccSettingLocale(t *testing.T) {
AcceptanceTest(t, AcceptanceTestCase{
VersionConstraint: ">= 7.3",
Lock: settingLocaleLock,
Steps: []resource.TestStep{
{
Config: testAccSettingLocaleConfig("America/New_York"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("unifi_setting_locale.test", "id"),
resource.TestCheckResourceAttr("unifi_setting_locale.test", "site", "default"),
resource.TestCheckResourceAttr("unifi_setting_locale.test", "timezone", "America/New_York"),
),
ConfigPlanChecks: pt.CheckResourceActions("unifi_setting_locale.test", plancheck.ResourceActionCreate),
},
pt.ImportStepWithSite("unifi_setting_locale.test"),
{
Config: testAccSettingLocaleConfig("Europe/London"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("unifi_setting_locale.test", "id"),
resource.TestCheckResourceAttr("unifi_setting_locale.test", "site", "default"),
resource.TestCheckResourceAttr("unifi_setting_locale.test", "timezone", "Europe/London"),
),
ConfigPlanChecks: pt.CheckResourceActions("unifi_setting_locale.test", plancheck.ResourceActionUpdate),
},
{
Config: testAccSettingLocaleConfig("UTC"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("unifi_setting_locale.test", "id"),
resource.TestCheckResourceAttr("unifi_setting_locale.test", "site", "default"),
resource.TestCheckResourceAttr("unifi_setting_locale.test", "timezone", "UTC"),
),
ConfigPlanChecks: pt.CheckResourceActions("unifi_setting_locale.test", plancheck.ResourceActionUpdate),
},
},
})
}
func TestAccSettingLocaleInvalid(t *testing.T) {
AcceptanceTest(t, AcceptanceTestCase{
VersionConstraint: ">= 7.3",
Lock: settingLocaleLock,
Steps: []resource.TestStep{
{
Config: testAccSettingLocaleConfig("Invalid/Timezone"),
ExpectError: regexp.MustCompile("must be a valid IANA timezone identifier"),
},
},
})
}
func testAccSettingLocaleConfig(timezone string) string {
return fmt.Sprintf(`
resource "unifi_setting_locale" "test" {
timezone = %q
}
`, timezone)
}