@@ -2,6 +2,7 @@ package applesilicon_test
22
33import (
44 "fmt"
5+ "regexp"
56 "testing"
67
78 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
@@ -128,6 +129,7 @@ func TestAccServer_EnableVPC(t *testing.T) {
128129 isServerPresent (tt , "scaleway_apple_silicon_server.main" ),
129130 resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "name" , "TestAccServerEnableVPC" ),
130131 resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "type" , "M2-M" ),
132+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "commitment" , "duration_24h" ),
131133 // Computed
132134 resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "ip" ),
133135 resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "vnc_url" ),
@@ -225,6 +227,73 @@ func TestAccServer_EnableVPC(t *testing.T) {
225227 })
226228}
227229
230+ func TestAccServer_Commitment (t * testing.T ) {
231+ tt := acctest .NewTestTools (t )
232+ defer tt .Cleanup ()
233+ resource .ParallelTest (t , resource.TestCase {
234+ PreCheck : func () { acctest .PreCheck (t ) },
235+ ProviderFactories : tt .ProviderFactories ,
236+ CheckDestroy : isServerDestroyed (tt ),
237+ Steps : []resource.TestStep {
238+ {
239+ Config : `
240+
241+ resource scaleway_apple_silicon_server main {
242+ name = "TestAccServerEnableDisableVPC"
243+ type = "M2-M"
244+ zone = "fr-par-3"
245+ }
246+ ` ,
247+ Check : resource .ComposeTestCheckFunc (
248+ isServerPresent (tt , "scaleway_apple_silicon_server.main" ),
249+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "name" , "TestAccServerEnableDisableVPC" ),
250+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "type" , "M2-M" ),
251+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "commitment" , "duration_24h" ),
252+ // Computed
253+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "ip" ),
254+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "vnc_url" ),
255+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "created_at" ),
256+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "deletable_at" ),
257+ ),
258+ },
259+ {
260+ Config : `
261+
262+ resource scaleway_apple_silicon_server main {
263+ name = "TestAccServerEnableDisableVPC"
264+ type = "M2-M"
265+ commitment = "renewed_monthly"
266+ zone = "fr-par-3"
267+ }
268+ ` ,
269+ Check : resource .ComposeTestCheckFunc (
270+ isServerPresent (tt , "scaleway_apple_silicon_server.main" ),
271+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "name" , "TestAccServerEnableDisableVPC" ),
272+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "type" , "M2-M" ),
273+ resource .TestCheckResourceAttr ("scaleway_apple_silicon_server.main" , "commitment" , "renewed_monthly" ),
274+ // Computed
275+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "ip" ),
276+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "vnc_url" ),
277+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "created_at" ),
278+ resource .TestCheckResourceAttrSet ("scaleway_apple_silicon_server.main" , "deletable_at" ),
279+ ),
280+ },
281+ {
282+ Config : `
283+
284+ resource scaleway_apple_silicon_server main {
285+ name = "TestAccServerEnableDisableVPC"
286+ type = "M2-M"
287+ commitment = "duration_24h"
288+ zone = "fr-par-3"
289+ }
290+ ` ,
291+ ExpectError : regexp .MustCompile ("can not commit from monthly to hourly changes to the server" ),
292+ },
293+ },
294+ })
295+ }
296+
228297func isServerPresent (tt * acctest.TestTools , n string ) resource.TestCheckFunc {
229298 return func (s * terraform.State ) error {
230299 rs , ok := s .RootModule ().Resources [n ]
0 commit comments