cloudformation_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. package amazon
  2. import (
  3. "fmt"
  4. "testing"
  5. "gotest.tools/assert"
  6. "github.com/docker/ecs-plugin/pkg/compose"
  7. "gotest.tools/v3/golden"
  8. )
  9. func TestSimpleConvert(t *testing.T) {
  10. project := load(t, "testdata/input/simple-single-service.yaml")
  11. result := convertResultAsString(t, project, "TestCluster")
  12. expected := "simple/simple-cloudformation-conversion.golden"
  13. golden.Assert(t, result, expected)
  14. }
  15. func TestSimpleWithOverrides(t *testing.T) {
  16. project := load(t, "testdata/input/simple-single-service.yaml", "testdata/input/simple-single-service-with-overrides.yaml")
  17. result := convertResultAsString(t, project, "TestCluster")
  18. expected := "simple/simple-cloudformation-with-overrides-conversion.golden"
  19. golden.Assert(t, result, expected)
  20. }
  21. func convertResultAsString(t *testing.T, project *compose.Project, clusterName string) string {
  22. client, err := NewClient("", clusterName, "")
  23. assert.NilError(t, err)
  24. result, err := client.Convert(project)
  25. assert.NilError(t, err)
  26. resultAsJSON, err := result.JSON()
  27. assert.NilError(t, err)
  28. return fmt.Sprintf("%s\n", string(resultAsJSON))
  29. }
  30. func load(t *testing.T, paths ...string) *compose.Project {
  31. options := compose.ProjectOptions{
  32. Name: t.Name(),
  33. ConfigPaths: paths,
  34. }
  35. project, err := compose.ProjectFromOptions(&options)
  36. assert.NilError(t, err)
  37. return project
  38. }