Skip to content

Commit abd2fb7

Browse files
committed
chore(lb): add support for cassettes based acceptance tests
1 parent 4a5c992 commit abd2fb7

6 files changed

+174
-150
lines changed

scaleway/data_source_lb_ip_beta_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ import (
77
)
88

99
func TestAccScalewayDataSourceLbIPBeta_Basic(t *testing.T) {
10+
tt := NewTestTools(t)
11+
defer tt.Cleanup()
1012
resource.ParallelTest(t, resource.TestCase{
11-
PreCheck: func() { testAccPreCheck(t) },
12-
Providers: testAccProviders,
13-
CheckDestroy: testAccCheckScalewayLbIPBetaDestroy,
13+
PreCheck: func() { testAccPreCheck(t) },
14+
ProviderFactories: tt.ProviderFactories,
15+
CheckDestroy: testAccCheckScalewayLbIPBetaDestroy(tt),
1416
Steps: []resource.TestStep{
1517
{
1618
Config: `
@@ -26,7 +28,7 @@ func TestAccScalewayDataSourceLbIPBeta_Basic(t *testing.T) {
2628
}
2729
`,
2830
Check: resource.ComposeTestCheckFunc(
29-
testAccCheckScalewayLbIPBetaExists("data.scaleway_lb_ip_beta.test"),
31+
testAccCheckScalewayLbIPBetaExists(tt, "data.scaleway_lb_ip_beta.test"),
3032
resource.TestCheckResourceAttrPair("data.scaleway_lb_ip_beta.test", "ip_address", "scaleway_lb_ip_beta.test", "ip_address"),
3133
resource.TestCheckResourceAttrPair("data.scaleway_lb_ip_beta.test2", "ip_address", "scaleway_lb_ip_beta.test", "ip_address"),
3234
),

scaleway/resource_lb_backend_beta_test.go

Lines changed: 44 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,13 @@ import (
99
"github.com/scaleway/scaleway-sdk-go/api/lb/v1"
1010
)
1111

12-
func TestAccScalewayLbBackendBeta(t *testing.T) {
12+
func TestAccScalewayLbBackend_Basic(t *testing.T) {
13+
tt := NewTestTools(t)
14+
defer tt.Cleanup()
1315
resource.ParallelTest(t, resource.TestCase{
14-
PreCheck: func() { testAccPreCheck(t) },
15-
Providers: testAccProviders,
16-
CheckDestroy: testAccCheckScalewayLbBackendBetaDestroy,
16+
PreCheck: func() { testAccPreCheck(t) },
17+
ProviderFactories: tt.ProviderFactories,
18+
CheckDestroy: testAccCheckScalewayLbBackendBetaDestroy(tt),
1719
Steps: []resource.TestStep{
1820
{
1921
Config: `
@@ -36,7 +38,7 @@ func TestAccScalewayLbBackendBeta(t *testing.T) {
3638
}
3739
`,
3840
Check: resource.ComposeTestCheckFunc(
39-
testAccCheckScalewayLbBackendBetaExists("scaleway_lb_backend_beta.bkd01"),
41+
testAccCheckScalewayLbBackendBetaExists(tt, "scaleway_lb_backend_beta.bkd01"),
4042
resource.TestCheckResourceAttr("scaleway_lb_backend_beta.bkd01", "forward_port_algorithm", "roundrobin"),
4143
resource.TestCheckResourceAttr("scaleway_lb_backend_beta.bkd01", "sticky_sessions", "none"),
4244
resource.TestCheckResourceAttr("scaleway_lb_backend_beta.bkd01", "proxy_protocol", "none"),
@@ -82,7 +84,7 @@ func TestAccScalewayLbBackendBeta(t *testing.T) {
8284
}
8385
`,
8486
Check: resource.ComposeTestCheckFunc(
85-
testAccCheckScalewayLbBackendBetaExists("scaleway_lb_backend_beta.bkd01"),
87+
testAccCheckScalewayLbBackendBetaExists(tt, "scaleway_lb_backend_beta.bkd01"),
8688
resource.TestCheckResourceAttrPair("scaleway_lb_backend_beta.bkd01", "server_ips.0", "scaleway_instance_ip.ip02", "address"),
8789
resource.TestCheckResourceAttr("scaleway_lb_backend_beta.bkd01", "health_check_delay", "10s"),
8890
resource.TestCheckResourceAttr("scaleway_lb_backend_beta.bkd01", "health_check_timeout", "15s"),
@@ -96,10 +98,12 @@ func TestAccScalewayLbBackendBeta(t *testing.T) {
9698
}
9799

98100
func TestAccScalewayLbBackendBeta_HealthCheck(t *testing.T) {
101+
tt := NewTestTools(t)
102+
defer tt.Cleanup()
99103
resource.ParallelTest(t, resource.TestCase{
100-
PreCheck: func() { testAccPreCheck(t) },
101-
Providers: testAccProviders,
102-
CheckDestroy: testAccCheckScalewayLbBackendBetaDestroy,
104+
PreCheck: func() { testAccPreCheck(t) },
105+
ProviderFactories: tt.ProviderFactories,
106+
CheckDestroy: testAccCheckScalewayLbBackendBetaDestroy(tt),
103107
Steps: []resource.TestStep{
104108
{
105109
Config: `
@@ -183,14 +187,14 @@ func TestAccScalewayLbBackendBeta_HealthCheck(t *testing.T) {
183187
})
184188
}
185189

186-
func testAccCheckScalewayLbBackendBetaExists(n string) resource.TestCheckFunc {
187-
return func(s *terraform.State) error {
188-
rs, ok := s.RootModule().Resources[n]
190+
func testAccCheckScalewayLbBackendBetaExists(tt *TestTools, n string) resource.TestCheckFunc {
191+
return func(state *terraform.State) error {
192+
rs, ok := state.RootModule().Resources[n]
189193
if !ok {
190194
return fmt.Errorf("resource not found: %s", n)
191195
}
192196

193-
lbAPI, region, ID, err := lbAPIWithRegionAndID(testAccProvider.Meta(), rs.Primary.ID)
197+
lbAPI, region, ID, err := lbAPIWithRegionAndID(tt.Meta, rs.Primary.ID)
194198
if err != nil {
195199
return err
196200
}
@@ -207,32 +211,34 @@ func testAccCheckScalewayLbBackendBetaExists(n string) resource.TestCheckFunc {
207211
}
208212
}
209213

210-
func testAccCheckScalewayLbBackendBetaDestroy(s *terraform.State) error {
211-
for _, rs := range s.RootModule().Resources {
212-
if rs.Type != "scaleway_lb_backend_beta" {
213-
continue
214+
func testAccCheckScalewayLbBackendBetaDestroy(tt *TestTools) resource.TestCheckFunc {
215+
return func(state *terraform.State) error {
216+
for _, rs := range state.RootModule().Resources {
217+
if rs.Type != "scaleway_lb_backend_beta" {
218+
continue
219+
}
220+
221+
lbAPI, region, ID, err := lbAPIWithRegionAndID(tt.Meta, rs.Primary.ID)
222+
if err != nil {
223+
return err
224+
}
225+
226+
_, err = lbAPI.GetBackend(&lb.GetBackendRequest{
227+
Region: region,
228+
BackendID: ID,
229+
})
230+
231+
// If no error resource still exist
232+
if err == nil {
233+
return fmt.Errorf("LB Backend (%s) still exists", rs.Primary.ID)
234+
}
235+
236+
// Unexpected api error we return it
237+
if !is404Error(err) {
238+
return err
239+
}
214240
}
215241

216-
lbAPI, region, ID, err := lbAPIWithRegionAndID(testAccProvider.Meta(), rs.Primary.ID)
217-
if err != nil {
218-
return err
219-
}
220-
221-
_, err = lbAPI.GetBackend(&lb.GetBackendRequest{
222-
Region: region,
223-
BackendID: ID,
224-
})
225-
226-
// If no error resource still exist
227-
if err == nil {
228-
return fmt.Errorf("LB Backend (%s) still exists", rs.Primary.ID)
229-
}
230-
231-
// Unexpected api error we return it
232-
if !is404Error(err) {
233-
return err
234-
}
242+
return nil
235243
}
236-
237-
return nil
238244
}

scaleway/resource_lb_beta_test.go

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ func testSweepLB(region string) error {
4343
return nil
4444
}
4545

46-
func TestAccScalewayLbAndIPBeta(t *testing.T) {
46+
func TestAccScalewayLbLb_WithIP(t *testing.T) {
47+
tt := NewTestTools(t)
48+
defer tt.Cleanup()
4749
resource.ParallelTest(t, resource.TestCase{
48-
PreCheck: func() { testAccPreCheck(t) },
49-
Providers: testAccProviders,
50-
CheckDestroy: testAccCheckScalewayLbBetaDestroy,
50+
PreCheck: func() { testAccPreCheck(t) },
51+
ProviderFactories: tt.ProviderFactories,
52+
CheckDestroy: testAccCheckScalewayLbBetaDestroy(tt),
5153
Steps: []resource.TestStep{
5254
{
5355
Config: `
@@ -61,8 +63,8 @@ func TestAccScalewayLbAndIPBeta(t *testing.T) {
6163
}
6264
`,
6365
Check: resource.ComposeTestCheckFunc(
64-
testAccCheckScalewayLbBetaExists("scaleway_lb_beta.lb01"),
65-
testAccCheckScalewayLbIPBetaExists("scaleway_lb_ip_beta.ip01"),
66+
testAccCheckScalewayLbBetaExists(tt, "scaleway_lb_beta.lb01"),
67+
testAccCheckScalewayLbIPBetaExists(tt, "scaleway_lb_ip_beta.ip01"),
6668
resource.TestCheckResourceAttr("scaleway_lb_beta.lb01", "name", "test-lb"),
6769
testCheckResourceAttrUUID("scaleway_lb_beta.lb01", "ip_id"),
6870
testCheckResourceAttrIPv4("scaleway_lb_beta.lb01", "ip_address"),
@@ -75,21 +77,21 @@ func TestAccScalewayLbAndIPBeta(t *testing.T) {
7577
}
7678
`,
7779
Check: resource.ComposeTestCheckFunc(
78-
testAccCheckScalewayLbIPBetaExists("scaleway_lb_ip_beta.ip01"),
80+
testAccCheckScalewayLbIPBetaExists(tt, "scaleway_lb_ip_beta.ip01"),
7981
),
8082
},
8183
},
8284
})
8385
}
8486

85-
func testAccCheckScalewayLbBetaExists(n string) resource.TestCheckFunc {
87+
func testAccCheckScalewayLbBetaExists(tt *TestTools, n string) resource.TestCheckFunc {
8688
return func(s *terraform.State) error {
8789
rs, ok := s.RootModule().Resources[n]
8890
if !ok {
8991
return fmt.Errorf("resource not found: %s", n)
9092
}
9193

92-
lbAPI, region, ID, err := lbAPIWithRegionAndID(testAccProvider.Meta(), rs.Primary.ID)
94+
lbAPI, region, ID, err := lbAPIWithRegionAndID(tt.Meta, rs.Primary.ID)
9395
if err != nil {
9496
return err
9597
}
@@ -107,32 +109,34 @@ func testAccCheckScalewayLbBetaExists(n string) resource.TestCheckFunc {
107109
}
108110
}
109111

110-
func testAccCheckScalewayLbBetaDestroy(s *terraform.State) error {
111-
for _, rs := range s.RootModule().Resources {
112-
if rs.Type != "scaleway_lb_beta" {
113-
continue
112+
func testAccCheckScalewayLbBetaDestroy(tt *TestTools) resource.TestCheckFunc {
113+
return func(state *terraform.State) error {
114+
for _, rs := range state.RootModule().Resources {
115+
if rs.Type != "scaleway_lb_beta" {
116+
continue
117+
}
118+
119+
lbAPI, region, ID, err := lbAPIWithRegionAndID(tt.Meta, rs.Primary.ID)
120+
if err != nil {
121+
return err
122+
}
123+
124+
_, err = lbAPI.GetLB(&lb.GetLBRequest{
125+
Region: region,
126+
LBID: ID,
127+
})
128+
129+
// If no error resource still exist
130+
if err == nil {
131+
return fmt.Errorf("load Balancer (%s) still exists", rs.Primary.ID)
132+
}
133+
134+
// Unexpected api error we return it
135+
if !is404Error(err) {
136+
return err
137+
}
114138
}
115139

116-
lbAPI, region, ID, err := lbAPIWithRegionAndID(testAccProvider.Meta(), rs.Primary.ID)
117-
if err != nil {
118-
return err
119-
}
120-
121-
_, err = lbAPI.GetLB(&lb.GetLBRequest{
122-
Region: region,
123-
LBID: ID,
124-
})
125-
126-
// If no error resource still exist
127-
if err == nil {
128-
return fmt.Errorf("Load Balancer (%s) still exists", rs.Primary.ID)
129-
}
130-
131-
// Unexpected api error we return it
132-
if !is404Error(err) {
133-
return err
134-
}
140+
return nil
135141
}
136-
137-
return nil
138142
}

scaleway/resource_lb_certificate_beta_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,20 @@ import (
66
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
77
)
88

9-
func TestAccScalewayLbCertificateBeta(t *testing.T) {
9+
func TestAccScalewayLbCertificate_Basic(t *testing.T) {
1010
/**
1111
* Note regarding the usage of xip.io
1212
* See the discussion on https://github.com/terraform-providers/terraform-provider-scaleway/pull/396
1313
* Long story short, scaleway API will not permit you to request a certificate in case common name is not pointed
1414
* to the load balancer IP (which is unknown before creating it). In production, this can be overcome by introducing
1515
* an additional step which creates a DNS record and depending on it, but for test purposes, xip.io is an ideal solution.
1616
*/
17+
tt := NewTestTools(t)
18+
defer tt.Cleanup()
1719
resource.ParallelTest(t, resource.TestCase{
18-
PreCheck: func() { testAccPreCheck(t) },
19-
Providers: testAccProviders,
20-
CheckDestroy: testAccCheckScalewayLbBetaDestroy,
20+
PreCheck: func() { testAccPreCheck(t) },
21+
ProviderFactories: tt.ProviderFactories,
22+
CheckDestroy: testAccCheckScalewayLbBetaDestroy(tt),
2123
Steps: []resource.TestStep{
2224
{
2325
Config: `

0 commit comments

Comments
 (0)