package integration

import (
	"os"
	"path"
	"testing"

	"github.com/pulumi/pulumi/pkg/v2/testing/integration"
)

func TestPulumiUpSeedGkeCluster(t *testing.T) {
	os.Setenv("MOCK_STACK", "true")
	os.Setenv("MOCK_OUTPUT", "true")
	os.Setenv("REGION", "us-west-1")
	os.Setenv("CLUSTER", "seed")
	os.Setenv("PROVIDER_TYPE", "gke")
	// thanos required AWS credencials, just disable it in local mode.
	os.Setenv("NO_DEPLOY_THANOS", "true")

	cwd, _ := os.Getwd()

	integration.ProgramTest(t, &integration.ProgramTestOptions{
		Quick:       true,
		SkipRefresh: true,
		Dir:         path.Join(cwd, "..", ".."),
		Config: map[string]string{
			"monitoring:env":         "test",
			"monitoring:infra-stack": "test",
		},
		Secrets: map[string]string{
			"monitoring:pagerduty_key":  "test",
			"monitoring:slack_url":      "test",
			"monitoring:datadog_apikey": "test",
		},
		// TODO: add validation
	})
}

func TestPulumiUpBaseEKSCluster(t *testing.T) {
	os.Setenv("MOCK_STACK", "true")
	os.Setenv("MOCK_OUTPUT", "true")
	os.Setenv("REGION", "us-west-1")
	os.Setenv("CLUSTER", "base")
	os.Setenv("PROVIDER_TYPE", "eks")

	cwd, _ := os.Getwd()

	integration.ProgramTest(t, &integration.ProgramTestOptions{
		Quick:       true,
		SkipRefresh: true,
		Dir:         path.Join(cwd, "..", ".."),
		Config: map[string]string{
			"monitoring:env":         "test",
			"monitoring:infra-stack": "test",
		},
		Secrets: map[string]string{
			"monitoring:pagerduty_key":       "test",
			"monitoring:slack_url":           "test",
			"monitoring:datadog_apikey":      "test",
			"monitoring:oauth-client-ID":     "test",
			"monitoring:oauth-client-Secret": "test",
		},
		// TODO: add validation
	})
}
