Testcase to check resources get tagged
@@ -2,8 +2,11 @@ package backend
import (
"fmt"
+ "reflect"
"testing"
+ "github.com/docker/ecs-plugin/pkg/compose"
+
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/awslabs/goformation/v4/cloudformation"
"github.com/awslabs/goformation/v4/cloudformation/ec2"
@@ -105,6 +108,31 @@ services:
assert.Check(t, lb.Type == elbv2.LoadBalancerTypeEnumNetwork)
}
+func TestResourcesHaveProjectTagSet(t *testing.T) {
+ template := convertYaml(t, `
+version: "3"
+services:
+ test:
+ image: nginx
+ ports:
+ - 80:80
+ - 88:88
+`)
+ for _, r := range template.Resources {
+ tags := reflect.Indirect(reflect.ValueOf(r)).FieldByName("Tags")
+ if !tags.IsValid() {
+ continue
+ }
+ for i := 0; i < tags.Len(); i++ {
+ k := tags.Index(i).FieldByName("Key").String()
+ v := tags.Index(i).FieldByName("Value").String()
+ if k == compose.ProjectTag {
+ assert.Equal(t, v, "Test")
+ }
+ }
+ }
+}
+
func convertResultAsString(t *testing.T, project *types.Project, clusterName string) string {
client, err := NewBackend("", clusterName, "")
assert.NilError(t, err)
