mirror of
https://github.com/opentofu/opentofu.git
synced 2024-12-30 10:47:14 -06:00
e67c359b2d
When testing the behavior of multiple provider instances (either aliases or child module overrides) it's convenient to be able to label the individual instances to determine which one is actually being used for the purpose of making test assertions.
46 lines
1010 B
Go
46 lines
1010 B
Go
package test
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/hashicorp/terraform/helper/resource"
|
|
"github.com/hashicorp/terraform/terraform"
|
|
)
|
|
|
|
func TestProviderLabelDataSource(t *testing.T) {
|
|
resource.UnitTest(t, resource.TestCase{
|
|
Providers: testAccProviders,
|
|
CheckDestroy: func(s *terraform.State) error {
|
|
return nil
|
|
},
|
|
Steps: []resource.TestStep{
|
|
{
|
|
Config: strings.TrimSpace(`
|
|
provider "test" {
|
|
label = "foo"
|
|
}
|
|
|
|
data "test_provider_label" "test" {
|
|
}
|
|
`),
|
|
Check: func(s *terraform.State) error {
|
|
res, hasRes := s.RootModule().Resources["data.test_provider_label.test"]
|
|
if !hasRes {
|
|
return errors.New("No test_provider_label in state")
|
|
}
|
|
if got, want := res.Primary.ID, "foo"; got != want {
|
|
return fmt.Errorf("wrong id %q; want %q", got, want)
|
|
}
|
|
if got, want := res.Primary.Attributes["label"], "foo"; got != want {
|
|
return fmt.Errorf("wrong id %q; want %q", got, want)
|
|
}
|
|
return nil
|
|
},
|
|
},
|
|
},
|
|
})
|
|
}
|