Skip to content

Commit 7060f23

Browse files
committed
chore: update test
1 parent 8ef4c92 commit 7060f23

File tree

4 files changed

+105
-16
lines changed

4 files changed

+105
-16
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
vendor
2+
examples/.terraform
3+
examples/.terraform.lock.hcl

provider/internal/mock_client.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,16 +76,15 @@ func (c *mockClient) UpdateEnvironment(environmentID int, patch *api.Environment
7676
}
7777

7878
if v := patch.Name; v != nil {
79+
if existed := c.findEnvironmentByName(*v); existed != nil {
80+
return nil, errors.Errorf("Environment %s already exists", env.Name)
81+
}
7982
env.Name = *v
8083
}
8184
if v := patch.Order; v != nil {
8285
env.Order = *v
8386
}
8487

85-
if existed := c.findEnvironmentByName(env.Name); existed != nil {
86-
return nil, errors.Errorf("Environment %s already exists", env.Name)
87-
}
88-
8988
delete(c.environmentMap, env.ID)
9089
c.environmentMap[env.ID] = env
9190

provider/resource_environment_test.go

Lines changed: 44 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package provider
22

33
import (
44
"fmt"
5+
"regexp"
56
"strconv"
67
"testing"
78

@@ -13,7 +14,12 @@ import (
1314
)
1415

1516
func TestAccEnvironment(t *testing.T) {
16-
envName := "dev"
17+
identifier := "new_environment"
18+
resourceName := fmt.Sprintf("bytebase_environment.%s", identifier)
19+
20+
name := "dev"
21+
order := 1
22+
nameUpdated := fmt.Sprintf("%s-updated", name)
1723

1824
resource.Test(t, resource.TestCase{
1925
PreCheck: func() {
@@ -22,16 +28,47 @@ func TestAccEnvironment(t *testing.T) {
2228
Providers: testAccProviders,
2329
CheckDestroy: testAccCheckEnvironmentDestroy,
2430
Steps: []resource.TestStep{
31+
// resource create
32+
{
33+
Config: testAccCheckEnvironmentConfigBasic(identifier, name, order),
34+
Check: resource.ComposeTestCheckFunc(
35+
testAccCheckEnvironmentExists(resourceName),
36+
resource.TestCheckResourceAttr(resourceName, "name", name),
37+
resource.TestCheckResourceAttr(resourceName, "order", fmt.Sprintf("%d", order)),
38+
),
39+
},
40+
// resource update
2541
{
26-
Config: testAccCheckEnvironmentConfigBasic(envName),
42+
Config: testAccCheckEnvironmentConfigBasic(identifier, nameUpdated, order+1),
2743
Check: resource.ComposeTestCheckFunc(
28-
testAccCheckEnvironmentExists("bytebase_environment.new"),
44+
testAccCheckEnvironmentExists(resourceName),
45+
resource.TestCheckResourceAttr(resourceName, "name", nameUpdated),
46+
resource.TestCheckResourceAttr(resourceName, "order", fmt.Sprintf("%d", order+1)),
2947
),
3048
},
3149
},
3250
})
3351
}
3452

53+
func TestAccEnvironment_InvalidInput(t *testing.T) {
54+
identifier := "another_environment"
55+
56+
resource.Test(t, resource.TestCase{
57+
PreCheck: func() {
58+
testAccPreCheck(t)
59+
},
60+
Providers: testAccProviders,
61+
CheckDestroy: testAccCheckEnvironmentDestroy,
62+
Steps: []resource.TestStep{
63+
// Invalid environment name
64+
{
65+
Config: testAccCheckEnvironmentConfigBasic(identifier, "", 0),
66+
ExpectError: regexp.MustCompile("not be an empty string"),
67+
},
68+
},
69+
})
70+
}
71+
3572
func testAccCheckEnvironmentDestroy(s *terraform.State) error {
3673
c := testAccProvider.Meta().(api.Client)
3774

@@ -53,12 +90,13 @@ func testAccCheckEnvironmentDestroy(s *terraform.State) error {
5390
return nil
5491
}
5592

56-
func testAccCheckEnvironmentConfigBasic(envName string) string {
93+
func testAccCheckEnvironmentConfigBasic(identifier, envName string, order int) string {
5794
return fmt.Sprintf(`
58-
resource "bytebase_environment" "new" {
95+
resource "bytebase_environment" "%s" {
5996
name = "%s"
97+
order = %d
6098
}
61-
`, envName)
99+
`, identifier, envName, order)
62100
}
63101

64102
func testAccCheckEnvironmentExists(n string) resource.TestCheckFunc {

provider/resource_instance_test.go

Lines changed: 55 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package provider
22

33
import (
44
"fmt"
5+
"regexp"
56
"strconv"
67
"testing"
78

@@ -13,10 +14,14 @@ import (
1314
)
1415

1516
func TestAccInstance(t *testing.T) {
17+
identifier := "new_instance"
18+
resourceName := fmt.Sprintf("bytebase_instance.%s", identifier)
19+
1620
name := "dev instance"
1721
engine := "POSTGRES"
1822
host := "127.0.0.1"
19-
env := "dev"
23+
environment := "dev"
24+
nameUpdated := fmt.Sprintf("%s-updated", name)
2025

2126
resource.Test(t, resource.TestCase{
2227
PreCheck: func() {
@@ -25,16 +30,60 @@ func TestAccInstance(t *testing.T) {
2530
Providers: testAccProviders,
2631
CheckDestroy: testAccCheckInstanceDestroy,
2732
Steps: []resource.TestStep{
33+
// resource create
34+
{
35+
Config: testAccCheckInstanceConfigBasic(identifier, name, engine, host, environment),
36+
Check: resource.ComposeTestCheckFunc(
37+
testAccCheckInstanceExists(resourceName),
38+
resource.TestCheckResourceAttr(resourceName, "name", name),
39+
resource.TestCheckResourceAttr(resourceName, "engine", engine),
40+
resource.TestCheckResourceAttr(resourceName, "host", host),
41+
resource.TestCheckResourceAttr(resourceName, "environment", environment),
42+
),
43+
},
44+
// resource updated
2845
{
29-
Config: testAccCheckInstanceConfigBasic(name, engine, host, env),
46+
Config: testAccCheckInstanceConfigBasic(identifier, nameUpdated, engine, host, environment),
3047
Check: resource.ComposeTestCheckFunc(
31-
testAccCheckInstanceExists("bytebase_instance.new"),
48+
testAccCheckInstanceExists(resourceName),
49+
resource.TestCheckResourceAttr(resourceName, "name", nameUpdated),
50+
resource.TestCheckResourceAttr(resourceName, "engine", engine),
51+
resource.TestCheckResourceAttr(resourceName, "host", host),
52+
resource.TestCheckResourceAttr(resourceName, "environment", environment),
3253
),
3354
},
3455
},
3556
})
3657
}
3758

59+
func TestAccInstance_InvalidInput(t *testing.T) {
60+
identifier := "another_instance"
61+
engine := "POSTGRES"
62+
name := "dev instance"
63+
host := "127.0.0.1"
64+
environment := "dev"
65+
66+
resource.Test(t, resource.TestCase{
67+
PreCheck: func() {
68+
testAccPreCheck(t)
69+
},
70+
Providers: testAccProviders,
71+
CheckDestroy: testAccCheckInstanceDestroy,
72+
Steps: []resource.TestStep{
73+
// Invalid instance name
74+
{
75+
Config: testAccCheckInstanceConfigBasic(identifier, "", engine, host, environment),
76+
ExpectError: regexp.MustCompile("not be an empty string"),
77+
},
78+
// Invalid engine
79+
{
80+
Config: testAccCheckInstanceConfigBasic(identifier, name, "engine", host, environment),
81+
ExpectError: regexp.MustCompile("expected engine to be one of"),
82+
},
83+
},
84+
})
85+
}
86+
3887
func testAccCheckInstanceDestroy(s *terraform.State) error {
3988
c := testAccProvider.Meta().(api.Client)
4089

@@ -56,15 +105,15 @@ func testAccCheckInstanceDestroy(s *terraform.State) error {
56105
return nil
57106
}
58107

59-
func testAccCheckInstanceConfigBasic(name, engine, host, env string) string {
108+
func testAccCheckInstanceConfigBasic(identifier, name, engine, host, env string) string {
60109
return fmt.Sprintf(`
61-
resource "bytebase_instance" "new" {
110+
resource "bytebase_instance" "%s" {
62111
name = "%s"
63112
engine = "%s"
64113
host = "%s"
65114
environment = "%s"
66115
}
67-
`, name, engine, host, env)
116+
`, identifier, name, engine, host, env)
68117
}
69118

70119
func testAccCheckInstanceExists(n string) resource.TestCheckFunc {

0 commit comments

Comments
 (0)