chore: add tests
Some checks failed
CI Workflow / Check GoReleaser config (pull_request) Successful in 7s
CI Workflow / CI (pull_request) Failing after 7m36s
CI Workflow / Code coverage report (pull_request) Has been skipped
CI Workflow / Test readiness for publishing provider (pull_request) Failing after 15m19s
Some checks failed
CI Workflow / Check GoReleaser config (pull_request) Successful in 7s
CI Workflow / CI (pull_request) Failing after 7m36s
CI Workflow / Code coverage report (pull_request) Has been skipped
CI Workflow / Test readiness for publishing provider (pull_request) Failing after 15m19s
This commit is contained in:
parent
f2bffa9ece
commit
3aa60a57e7
6 changed files with 469 additions and 2 deletions
|
|
@ -110,6 +110,20 @@ type resData struct {
|
|||
AccessScope string
|
||||
RetentionDays uint32
|
||||
Version string
|
||||
Users []User
|
||||
Databases []Database
|
||||
}
|
||||
|
||||
type User struct {
|
||||
Name string
|
||||
ProjectId string
|
||||
Roles []string
|
||||
}
|
||||
|
||||
type Database struct {
|
||||
Name string
|
||||
ProjectId string
|
||||
Owner string
|
||||
}
|
||||
|
||||
func getExample() resData {
|
||||
|
|
@ -133,7 +147,7 @@ func getExample() resData {
|
|||
}
|
||||
}
|
||||
|
||||
func TestAccResourceExample_basic(t *testing.T) {
|
||||
func TestAccInstance(t *testing.T) {
|
||||
exData := getExample()
|
||||
resName := fmt.Sprintf(
|
||||
"stackitprivatepreview_postgresflexalpha_instance.%s",
|
||||
|
|
@ -195,6 +209,107 @@ func TestAccResourceExample_basic(t *testing.T) {
|
|||
})
|
||||
}
|
||||
|
||||
func TestAccInstanceWithUsers(t *testing.T) {
|
||||
data := getExample()
|
||||
userName := "testUser"
|
||||
data.Users = []User{
|
||||
{
|
||||
Name: userName,
|
||||
ProjectId: os.Getenv("TF_ACC_PROJECT_ID"),
|
||||
Roles: []string{"login"},
|
||||
},
|
||||
}
|
||||
|
||||
resName := fmt.Sprintf(
|
||||
"stackitprivatepreview_postgresflexalpha_instance.%s",
|
||||
data.TfName,
|
||||
)
|
||||
|
||||
resUserName := fmt.Sprintf(
|
||||
"stackitprivatepreview_postgresflexalpha_user.%s",
|
||||
userName,
|
||||
)
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
ProtoV6ProviderFactories: testutils.TestAccProtoV6ProviderFactories,
|
||||
Steps: []resource.TestStep{
|
||||
// Create and verify
|
||||
{
|
||||
Config: testutils.StringFromTemplateMust(
|
||||
"testdata/instance_template.gompl",
|
||||
data,
|
||||
),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
resource.TestCheckResourceAttr(resName, "name", data.Name),
|
||||
resource.TestCheckResourceAttrSet(resName, "id"),
|
||||
resource.TestCheckResourceAttr(resUserName, "name", userName),
|
||||
resource.TestCheckResourceAttrSet(resUserName, "id"),
|
||||
),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
func TestAccInstanceWithDatabases(t *testing.T) {
|
||||
data := getExample()
|
||||
dbName := "testDb"
|
||||
userName := "testUser"
|
||||
data.Users = []User{
|
||||
{
|
||||
Name: userName,
|
||||
ProjectId: os.Getenv("TF_ACC_PROJECT_ID"),
|
||||
Roles: []string{"login"},
|
||||
},
|
||||
}
|
||||
|
||||
data.Databases = []Database{
|
||||
{
|
||||
Name: dbName,
|
||||
ProjectId: os.Getenv("TF_ACC_PROJECT_ID"),
|
||||
Owner: userName,
|
||||
},
|
||||
}
|
||||
|
||||
resName := fmt.Sprintf(
|
||||
"stackitprivatepreview_postgresflexalpha_instance.%s",
|
||||
data.TfName,
|
||||
)
|
||||
|
||||
resUserName := fmt.Sprintf(
|
||||
"stackitprivatepreview_postgresflexalpha_user.%s",
|
||||
userName,
|
||||
)
|
||||
|
||||
resDbName := fmt.Sprintf(
|
||||
"stackitprivatepreview_postgresflexalpha_database.%s",
|
||||
dbName,
|
||||
)
|
||||
|
||||
resource.Test(t, resource.TestCase{
|
||||
PreCheck: func() { testAccPreCheck(t) },
|
||||
ProtoV6ProviderFactories: testutils.TestAccProtoV6ProviderFactories,
|
||||
Steps: []resource.TestStep{
|
||||
// Create and verify
|
||||
{
|
||||
Config: testutils.StringFromTemplateMust(
|
||||
"testdata/instance_template.gompl",
|
||||
data,
|
||||
),
|
||||
Check: resource.ComposeAggregateTestCheckFunc(
|
||||
resource.TestCheckResourceAttr(resName, "name", data.Name),
|
||||
resource.TestCheckResourceAttrSet(resName, "id"),
|
||||
resource.TestCheckResourceAttr(resUserName, "name", userName),
|
||||
resource.TestCheckResourceAttrSet(resUserName, "id"),
|
||||
resource.TestCheckResourceAttr(resDbName, "name", dbName),
|
||||
resource.TestCheckResourceAttr(resDbName, "owner", userName),
|
||||
resource.TestCheckResourceAttrSet(resDbName, "id"),
|
||||
),
|
||||
},
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
//func setupMockServer() *httptest.Server {
|
||||
// mux := http.NewServeMux()
|
||||
//
|
||||
|
|
|
|||
|
|
@ -28,3 +28,27 @@ resource "stackitprivatepreview_postgresflexalpha_instance" "{{ .TfName }}" {
|
|||
}
|
||||
version = {{ .Version }}
|
||||
}
|
||||
|
||||
{{ if .Users }}
|
||||
{{ $tfName := .TfName }}
|
||||
{{ range $user := .Users }}
|
||||
resource "stackitprivatepreview_postgresflexalpha_user" "{{ $user.Name }}" {
|
||||
project_id = "{{ $user.ProjectId }}"
|
||||
instance_id = stackitprivatepreview_postgresflexalpha_instance.{{ $tfName }}.instance_id
|
||||
name = "{{ $user.Name }}"
|
||||
roles = [{{ range $i, $v := $user.Roles }}{{if $i}},{{end}}"{{$v}}"{{end}}]
|
||||
}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if .Databases }}
|
||||
{{ $tfName := .TfName }}
|
||||
{{ range $db := .Databases }}
|
||||
resource "stackitprivatepreview_postgresflexalpha_database" "{{ $db.Name }}" {
|
||||
project_id = "{{ $db.ProjectId }}"
|
||||
instance_id = stackitprivatepreview_postgresflexalpha_instance.{{ $tfName }}.instance_id
|
||||
name = "{{ $db.Name }}"
|
||||
owner = "{{ $db.Owner }}"
|
||||
}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue