Skip to content

Commit f56f23c

Browse files
committed
add tests
1 parent 2deb8e4 commit f56f23c

File tree

4 files changed

+126
-0
lines changed

4 files changed

+126
-0
lines changed

internal/provider/provider.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import (
2121
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/container"
2222
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/domain"
2323
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/edgeservices"
24+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/file"
2425
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/flexibleip"
2526
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/function"
2627
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/iam"
@@ -151,6 +152,7 @@ func Provider(config *Config) plugin.ProviderFunc {
151152
"scaleway_edge_services_route_stage": edgeservices.ResourceRouteStage(),
152153
"scaleway_edge_services_tls_stage": edgeservices.ResourceTLSStage(),
153154
"scaleway_edge_services_waf_stage": edgeservices.ResourceWAFStage(),
155+
"scaleway_file_filesystem": file.ResourceFileSystem(),
154156
"scaleway_flexible_ip": flexibleip.ResourceIP(),
155157
"scaleway_flexible_ip_mac_address": flexibleip.ResourceMACAddress(),
156158
"scaleway_function": function.ResourceFunction(),
File renamed without changes.
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
package file_test
2+
3+
import (
4+
"fmt"
5+
"testing"
6+
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
8+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
9+
fileSDK "github.com/scaleway/scaleway-sdk-go/api/file/v1alpha1"
10+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
11+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/file"
12+
filetestfuncs "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/file/testfuncs"
13+
)
14+
15+
func TestAccFileSystem_Basic(t *testing.T) {
16+
tt := acctest.NewTestTools(t)
17+
defer tt.Cleanup()
18+
19+
fileSystemName := "TestAccFileSystem_Basic"
20+
fileSystemNameUpdated := "TestAccFileSystem_BasicUpdate"
21+
22+
resource.ParallelTest(t, resource.TestCase{
23+
PreCheck: func() { acctest.PreCheck(t) },
24+
ProviderFactories: tt.ProviderFactories,
25+
CheckDestroy: filetestfuncs.CheckFileDestroy(tt),
26+
Steps: []resource.TestStep{
27+
{
28+
Config: fmt.Sprintf(`
29+
resource "scaleway_file_filesysten" "fs" {
30+
name = "%s"
31+
size = 10000000000
32+
}
33+
34+
35+
`, fileSystemName),
36+
Check: resource.ComposeTestCheckFunc(
37+
testAccCheckFileSystemExists(tt, "scaleway_file_filesystem.fs"),
38+
resource.TestCheckResourceAttr("scaleway_file_filesystem.fs", "name", fileSystemName),
39+
resource.TestCheckResourceAttr("scaleway_file_filesystem.fs", "size", "10000000000"),
40+
),
41+
},
42+
{
43+
Config: fmt.Sprintf(`
44+
resource "scaleway_file_filesysten" "fs" {
45+
name = "%s"
46+
size = 10000000000
47+
}
48+
49+
50+
`, fileSystemNameUpdated),
51+
Check: resource.ComposeTestCheckFunc(
52+
testAccCheckFileSystemExists(tt, "scaleway_file_filesystem.fs"),
53+
resource.TestCheckResourceAttr("scaleway_file_filesystem.fs", "size", "10000000000"),
54+
),
55+
},
56+
},
57+
})
58+
}
59+
60+
func testAccCheckFileSystemExists(tt *acctest.TestTools, n string) resource.TestCheckFunc {
61+
return func(s *terraform.State) error {
62+
rs, ok := s.RootModule().Resources[n]
63+
if !ok {
64+
return fmt.Errorf("resource not found: %s", n)
65+
}
66+
67+
fileAPI, region, id, err := file.NewAPIWithRegionAndID(tt.Meta, rs.Primary.ID)
68+
if err != nil {
69+
return err
70+
}
71+
72+
_, err = fileAPI.GetFileSystem(&fileSDK.GetFileSystemRequest{
73+
Region: region,
74+
FilesystemID: id,
75+
})
76+
if err != nil {
77+
return err
78+
}
79+
80+
return nil
81+
}
82+
}
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package filetestfuncs
2+
3+
import (
4+
"fmt"
5+
6+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
7+
"github.com/hashicorp/terraform-plugin-sdk/v2/terraform"
8+
fileSDK "github.com/scaleway/scaleway-sdk-go/api/file/v1alpha1"
9+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
10+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/httperrors"
11+
"github.com/scaleway/terraform-provider-scaleway/v2/internal/services/file"
12+
)
13+
14+
func CheckFileDestroy(tt *acctest.TestTools) resource.TestCheckFunc {
15+
return func(state *terraform.State) error {
16+
for _, rs := range state.RootModule().Resources {
17+
if rs.Type != "scaleway_file_filesystem" {
18+
continue
19+
}
20+
21+
fileAPI, region, id, err := file.NewAPIWithRegionAndID(tt.Meta, rs.Primary.ID)
22+
if err != nil {
23+
return err
24+
}
25+
26+
_, err = fileAPI.GetFileSystem(&fileSDK.GetFileSystemRequest{
27+
Region: region,
28+
FilesystemID: id,
29+
})
30+
31+
if err == nil {
32+
return fmt.Errorf("filesystem (%s) still exists", rs.Primary.ID)
33+
}
34+
35+
if !httperrors.Is404(err) {
36+
return err
37+
}
38+
}
39+
40+
return nil
41+
}
42+
}

0 commit comments

Comments
 (0)