Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions internal/acctest/acctest.go
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
package acctest

import (
"context"
"os"
"strconv"
"strings"
"testing"
"time"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-go/tfprotov5"
"github.com/hashicorp/terraform-plugin-mux/tf5muxserver"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/env"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/meta"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/provider"
Expand All @@ -20,7 +22,7 @@ func PreCheck(_ *testing.T) {}
type TestTools struct {
T *testing.T
Meta *meta.Meta
ProviderFactories map[string]func() (*schema.Provider, error)
ProviderFactories map[string]func() (tfprotov5.ProviderServer, error)
Cleanup func()
}

Expand Down Expand Up @@ -64,9 +66,17 @@ func NewTestTools(t *testing.T) *TestTools {
return &TestTools{
T: t,
Meta: m,
ProviderFactories: map[string]func() (*schema.Provider, error){
"scaleway": func() (*schema.Provider, error) {
return provider.SDKProvider(&provider.Config{Meta: m})(), nil
ProviderFactories: map[string]func() (tfprotov5.ProviderServer, error){
"scaleway": func() (tfprotov5.ProviderServer, error) {
ctx := context.Background()
providers := provider.NewProviderList(&provider.Config{Meta: m})

muxServer, err := tf5muxserver.NewMuxServer(ctx, providers...)
if err != nil {
return nil, err
}

return muxServer.ProviderServer(), nil
},
},
Cleanup: cleanup,
Expand Down
18 changes: 13 additions & 5 deletions internal/acctest/fixtures.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ package acctest
import (
"context"

"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
"github.com/hashicorp/terraform-plugin-go/tfprotov5"
"github.com/hashicorp/terraform-plugin-mux/tf5muxserver"
sdkacctest "github.com/hashicorp/terraform-plugin-testing/helper/acctest"
"github.com/scaleway/scaleway-sdk-go/api/account/v3"
iam "github.com/scaleway/scaleway-sdk-go/api/iam/v1alpha1"
Expand All @@ -17,7 +18,7 @@ import (
// given project and API key as default profile configuration.
//
// This is useful to test resources that need to create resources in another project.
func FakeSideProjectProviders(ctx context.Context, tt *TestTools, project *account.Project, iamAPIKey *iam.APIKey) map[string]func() (*schema.Provider, error) {
func FakeSideProjectProviders(ctx context.Context, tt *TestTools, project *account.Project, iamAPIKey *iam.APIKey) map[string]func() (tfprotov5.ProviderServer, error) {
t := tt.T

metaSide, err := meta.NewMeta(ctx, &meta.Config{
Expand All @@ -30,9 +31,16 @@ func FakeSideProjectProviders(ctx context.Context, tt *TestTools, project *accou
})
require.NoError(t, err)

providers := map[string]func() (*schema.Provider, error){
"side": func() (*schema.Provider, error) {
return provider.SDKProvider(&provider.Config{Meta: metaSide})(), nil
providers := map[string]func() (tfprotov5.ProviderServer, error){
"side": func() (tfprotov5.ProviderServer, error) {
providers := provider.NewProviderList(&provider.Config{Meta: metaSide})

muxServer, err := tf5muxserver.NewMuxServer(ctx, providers...)
if err != nil {
return nil, err
}

return muxServer.ProviderServer(), nil
},
}

Expand Down
47 changes: 0 additions & 47 deletions internal/provider/provider_mux_test.go

This file was deleted.

16 changes: 16 additions & 0 deletions internal/provider/providers.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
package provider

import (
"github.com/hashicorp/terraform-plugin-framework/providerserver"
"github.com/hashicorp/terraform-plugin-go/tfprotov5"
)

func NewProviderList(config *Config) []func() tfprotov5.ProviderServer {
return []func() tfprotov5.ProviderServer{
// Provider using terraform-plugin-framework
providerserver.NewProtocol5(&ScalewayProvider{}),

// SDKProvider using terraform-plugin-sdk
SDKProvider(config)().GRPCProvider,
}
}
27 changes: 27 additions & 0 deletions internal/provider/providers_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
package provider_test

import (
"testing"

"github.com/hashicorp/terraform-plugin-testing/helper/resource"
"github.com/scaleway/terraform-provider-scaleway/v2/internal/acctest"
instancechecks "github.com/scaleway/terraform-provider-scaleway/v2/internal/services/instance/testfuncs"
)

func TestMuxServer(t *testing.T) {
tt := acctest.NewTestTools(t)
defer tt.Cleanup()

resource.Test(t, resource.TestCase{
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: `
resource scaleway_instance_ip main {}`,
Check: resource.ComposeTestCheckFunc(
instancechecks.CheckIPExists(tt, "scaleway_instance_ip.main"),
),
},
},
})
}
16 changes: 8 additions & 8 deletions internal/services/account/project_data_source_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ func TestAccDataSourceProject_Basic(t *testing.T) {
}

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: resource.ComposeTestCheckFunc(
isProjectDestroyed(tt),
),
Expand Down Expand Up @@ -61,8 +61,8 @@ func TestAccDataSourceProject_Default(t *testing.T) {
}

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: fmt.Sprintf(`
Expand Down Expand Up @@ -105,8 +105,8 @@ func TestAccDataSourceProject_Extract(t *testing.T) {
}

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: `data scaleway_account_project "project" {}`,
Expand All @@ -129,8 +129,8 @@ func TestAccDataSourceProject_List(t *testing.T) {
}

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: resource.ComposeTestCheckFunc(
isProjectDestroyed(tt),
),
Expand Down
8 changes: 4 additions & 4 deletions internal/services/account/project_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ func TestAccProject_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
ProviderFactories: tt.ProviderFactories,
CheckDestroy: isProjectDestroyed(tt),
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: isProjectDestroyed(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down Expand Up @@ -60,8 +60,8 @@ func TestAccProject_NoUpdate(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
ProviderFactories: tt.ProviderFactories,
CheckDestroy: isProjectDestroyed(tt),
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: isProjectDestroyed(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down
24 changes: 12 additions & 12 deletions internal/services/applesilicon/server_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ func TestAccServer_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down Expand Up @@ -70,9 +70,9 @@ func TestAccServer_EnableDisabledVPC(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down Expand Up @@ -125,9 +125,9 @@ func TestAccServer_EnableVPC(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down Expand Up @@ -270,9 +270,9 @@ func TestAccServer_Commitment(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: isServerDestroyed(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down
6 changes: 3 additions & 3 deletions internal/services/autoscaling/instance_group_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ func TestAccInstanceGroup_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstanceGroupDestroy(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstanceGroupDestroy(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down
6 changes: 3 additions & 3 deletions internal/services/autoscaling/instance_policy_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ func TestAccInstancePolicy_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstancePolicyDestroy(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstancePolicyDestroy(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down
12 changes: 6 additions & 6 deletions internal/services/autoscaling/instance_template_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ func TestAccInstanceTemplate_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstanceTemplateDestroy(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstanceTemplateDestroy(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down Expand Up @@ -74,9 +74,9 @@ func TestAccInstanceTemplate_PrivateNetwork(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstanceTemplateDestroy(tt),
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
CheckDestroy: testAccCheckInstanceTemplateDestroy(tt),
Steps: []resource.TestStep{
{
Config: `
Expand Down
4 changes: 2 additions & 2 deletions internal/services/az/availability_zones_data_source_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@ func TestAccDataSourceAvailabilityZones_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: `
Expand Down
12 changes: 6 additions & 6 deletions internal/services/baremetal/offer_data_source_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ func TestAccDataSourceOffer_Basic(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: fmt.Sprintf(`
Expand Down Expand Up @@ -69,8 +69,8 @@ func TestAccDataSourceOffer_SubscriptionPeriodHourly(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: fmt.Sprintf(`
Expand Down Expand Up @@ -119,8 +119,8 @@ func TestAccDataSourceOffer_SubscriptionPeriodMonthly(t *testing.T) {
defer tt.Cleanup()

resource.ParallelTest(t, resource.TestCase{
PreCheck: func() { acctest.PreCheck(t) },
ProviderFactories: tt.ProviderFactories,
PreCheck: func() { acctest.PreCheck(t) },
ProtoV5ProviderFactories: tt.ProviderFactories,
Steps: []resource.TestStep{
{
Config: fmt.Sprintf(`
Expand Down
Loading
Loading