Преглед на файлове

Skip Scaleway e2e when env is missing

Signed-off-by: Moritz Johner <beller.moritz@googlemail.com>
Moritz Johner преди 2 месеца
родител
ревизия
36ada77474
променени са 3 файла, в които са добавени 81 реда и са изтрити 0 реда
  1. 17 0
      e2e/suites/provider/cases/scaleway/config.go
  2. 53 0
      e2e/suites/provider/cases/scaleway/config_test.go
  3. 11 0
      e2e/suites/provider/cases/scaleway/scaleway.go

+ 17 - 0
e2e/suites/provider/cases/scaleway/config.go

@@ -29,6 +29,23 @@ type config struct {
 	secretKey string
 }
 
+func missingRequiredEnvFromConfig(cfg config) []string {
+	var missing []string
+	if cfg.region == "" {
+		missing = append(missing, "SCALEWAY_REGION")
+	}
+	if cfg.projectId == "" {
+		missing = append(missing, "SCALEWAY_PROJECT_ID")
+	}
+	if cfg.accessKey == "" {
+		missing = append(missing, "SCALEWAY_ACCESS_KEY")
+	}
+	if cfg.secretKey == "" {
+		missing = append(missing, "SCALEWAY_SECRET_KEY")
+	}
+	return missing
+}
+
 func loadConfigFromEnv() (*config, error) {
 
 	var cfg config

+ 53 - 0
e2e/suites/provider/cases/scaleway/config_test.go

@@ -0,0 +1,53 @@
+/*
+Copyright © The ESO Authors
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+	https://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/
+
+package scaleway
+
+import (
+	"reflect"
+	"testing"
+)
+
+func TestMissingRequiredEnvFromConfig(t *testing.T) {
+	t.Parallel()
+
+	cfg := config{}
+	want := []string{
+		"SCALEWAY_REGION",
+		"SCALEWAY_PROJECT_ID",
+		"SCALEWAY_ACCESS_KEY",
+		"SCALEWAY_SECRET_KEY",
+	}
+
+	if got := missingRequiredEnvFromConfig(cfg); !reflect.DeepEqual(got, want) {
+		t.Fatalf("missingRequiredEnvFromConfig() = %v, want %v", got, want)
+	}
+}
+
+func TestMissingRequiredEnvFromConfigComplete(t *testing.T) {
+	t.Parallel()
+
+	cfg := config{
+		region:    "fr-par",
+		projectId: "project-id",
+		accessKey: "access-key",
+		secretKey: "secret-key",
+	}
+
+	if got := missingRequiredEnvFromConfig(cfg); len(got) != 0 {
+		t.Fatalf("missingRequiredEnvFromConfig() = %v, want none", got)
+	}
+}

+ 11 - 0
e2e/suites/provider/cases/scaleway/scaleway.go

@@ -18,6 +18,8 @@ package scaleway
 
 import (
 	"context"
+	"os"
+	"strings"
 	"sync"
 
 	"github.com/external-secrets/external-secrets-e2e/framework"
@@ -43,6 +45,15 @@ var _ = Describe("[scaleway]", Label("scaleway"), func() {
 	provider := &secretStoreProvider{}
 
 	BeforeEach(func() {
+		cfgFromEnv := config{
+			region:    os.Getenv("SCALEWAY_REGION"),
+			projectId: os.Getenv("SCALEWAY_PROJECT_ID"),
+			accessKey: os.Getenv("SCALEWAY_ACCESS_KEY"),
+			secretKey: os.Getenv("SCALEWAY_SECRET_KEY"),
+		}
+		if missing := missingRequiredEnvFromConfig(cfgFromEnv); len(missing) > 0 {
+			Skip("missing Scaleway e2e environment: " + strings.Join(missing, ", "))
+		}
 
 		cfg, err := loadConfigFromEnv()
 		Expect(err).ToNot(HaveOccurred())