terraform-provider-docker/internal/provider/resource_docker_buildx_builder_test.go

53 lines
1.7 KiB
Go

package provider
import (
"os/exec"
"testing"
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
)
func TestAccDockerBuildxBuilder_DockerContainerDriver(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: providerFactories,
Steps: []resource.TestStep{
{
Config: loadTestConfiguration(t, RESOURCE, "docker_buildx_builder", "testAccDockerBuildxBuilderDockerContainer"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("docker_buildx_builder.foo", "name"),
),
},
},
})
}
func TestAccDockerBuildxBuilder_OutOfBandDeletion(t *testing.T) {
resource.Test(t, resource.TestCase{
PreCheck: func() { testAccPreCheck(t) },
ProviderFactories: providerFactories,
Steps: []resource.TestStep{
{
Config: loadTestConfiguration(t, RESOURCE, "docker_buildx_builder", "testAccDockerBuildxBuilderDockerContainer"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttrSet("docker_buildx_builder.foo", "name"),
),
},
{
// This step simulates the external deletion or non-existence of the resource
PreConfig: func() {
if err := exec.Command("docker", "buildx", "rm", "foo").Run(); err != nil {
t.Fatalf("failed to delete resource externally: %v", err)
}
},
PlanOnly: true,
Config: loadTestConfiguration(t, RESOURCE, "docker_buildx_builder", "testAccDockerBuildxBuilderDockerContainer"),
Check: resource.ComposeTestCheckFunc(
resource.TestCheckResourceAttr("docker_buildx_builder.foo", "name", "test"),
),
// We expect the plan to show that the resource will be recreated because it was deleted out-of-band
ExpectNonEmptyPlan: true,
},
},
})
}