Skip to content

Commit 453ef40

Browse files
committed
Add acceptance tests
1 parent fc3a849 commit 453ef40

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

internal/services/recoveryservices/recovery_services_vault_resource_test.go

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,31 @@ func TestAccRecoveryServicesVault_softDelete(t *testing.T) {
318318
})
319319
}
320320

321+
func TestAccRecoveryServicesVault_softDeleteAlwaysOn(t *testing.T) {
322+
data := acceptance.BuildTestData(t, "azurerm_recovery_services_vault", "test")
323+
r := RecoveryServicesVaultResource{}
324+
325+
data.ResourceTest(t, r, []acceptance.TestStep{
326+
{
327+
// Create in an AlwaysON region — provider must not attempt to downgrade
328+
// EnhancedSecurityState or SoftDeleteFeatureState (Azure rejects both).
329+
Config: r.softDeleteAlwaysOnEnabled(data),
330+
Check: acceptance.ComposeTestCheckFunc(
331+
check.That(data.ResourceName).ExistsInAzure(r),
332+
check.That(data.ResourceName).Key("soft_delete_enabled").HasValue("true"),
333+
),
334+
},
335+
// ImportStep verifies the Read path: AlwaysON state must map to soft_delete_enabled=true
336+
// so there is no perpetual diff after import.
337+
data.ImportStep(),
338+
{
339+
// Attempting to disable soft delete in an AlwaysON region must return a clear error.
340+
Config: r.softDeleteAlwaysOnDisabled(data),
341+
ExpectError: regexp.MustCompile(`soft delete cannot be disabled for .+: Azure has enforced 'Always On' soft delete in this region`),
342+
},
343+
})
344+
}
345+
321346
func TestAccRecoveryServicesVault_storageModeType(t *testing.T) {
322347
data := acceptance.BuildTestData(t, "azurerm_recovery_services_vault", "test")
323348
r := RecoveryServicesVaultResource{}
@@ -1244,6 +1269,50 @@ resource "azurerm_recovery_services_vault" "test" {
12441269
`, data.RandomInteger, data.Locations.Primary, data.RandomInteger)
12451270
}
12461271

1272+
func (RecoveryServicesVaultResource) softDeleteAlwaysOnEnabled(data acceptance.TestData) string {
1273+
return fmt.Sprintf(`
1274+
provider "azurerm" {
1275+
features {}
1276+
}
1277+
1278+
resource "azurerm_resource_group" "test" {
1279+
name = "acctestRG-recovery-%d"
1280+
location = "australiaeast"
1281+
}
1282+
1283+
resource "azurerm_recovery_services_vault" "test" {
1284+
name = "acctest-Vault-%d"
1285+
location = azurerm_resource_group.test.location
1286+
resource_group_name = azurerm_resource_group.test.name
1287+
sku = "Standard"
1288+
1289+
soft_delete_enabled = true
1290+
}
1291+
`, data.RandomInteger, data.RandomInteger)
1292+
}
1293+
1294+
func (RecoveryServicesVaultResource) softDeleteAlwaysOnDisabled(data acceptance.TestData) string {
1295+
return fmt.Sprintf(`
1296+
provider "azurerm" {
1297+
features {}
1298+
}
1299+
1300+
resource "azurerm_resource_group" "test" {
1301+
name = "acctestRG-recovery-%d"
1302+
location = "australiaeast"
1303+
}
1304+
1305+
resource "azurerm_recovery_services_vault" "test" {
1306+
name = "acctest-Vault-%d"
1307+
location = azurerm_resource_group.test.location
1308+
resource_group_name = azurerm_resource_group.test.name
1309+
sku = "Standard"
1310+
1311+
soft_delete_enabled = false
1312+
}
1313+
`, data.RandomInteger, data.RandomInteger)
1314+
}
1315+
12471316
func (RecoveryServicesVaultResource) crossRegionRestoreDefault(data acceptance.TestData) string {
12481317
return fmt.Sprintf(`
12491318
provider "azurerm" {

0 commit comments

Comments
 (0)