@@ -47,6 +47,7 @@ type deploySvcMocks struct {
4747 mockSubnetLister * mocks.MockvpcSubnetLister
4848 mockS3Svc * mocks.Mockuploader
4949 mockAddons * mocks.Mocktemplater
50+ mockIdentity * mocks.MockidentityService
5051}
5152
5253type mockWorkloadMft struct {
@@ -766,6 +767,27 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
766767 },
767768 wantErr : fmt .Errorf ("alias is not compatible with application versions below %s" , deploy .AliasLeastAppTemplateVersion ),
768769 },
770+ "fail to enable nlb alias because of incompatible app version" : {
771+ inNLB : manifest.NetworkLoadBalancerConfiguration {
772+ Port : aws .String ("80" ),
773+ Aliases : manifest.Alias {String : aws .String ("mockAlias" )},
774+ },
775+ inEnvironment : & config.Environment {
776+ Name : mockEnvName ,
777+ Region : "us-west-2" ,
778+ },
779+ inApp : & config.Application {
780+ Name : mockAppName ,
781+ Domain : "mockDomain" ,
782+ },
783+ mock : func (m * deploySvcMocks ) {
784+ m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
785+ m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
786+ m .mockAppVersionGetter .EXPECT ().Version ().Return ("v0.0.0" , nil )
787+ m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
788+ },
789+ wantErr : fmt .Errorf ("alias is not compatible with application versions below %s" , deploy .AliasLeastAppTemplateVersion ),
790+ },
769791 "fail to enable https alias because of invalid alias" : {
770792 inAliases : manifest.Alias {String : aws .String ("v1.v2.mockDomain" )},
771793 inEnvironment : & config.Environment {
@@ -784,6 +806,27 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
784806 },
785807 wantErr : fmt .Errorf (`alias "v1.v2.mockDomain" is not supported in hosted zones managed by Copilot` ),
786808 },
809+ "fail to enable nlb alias because of invalid alias" : {
810+ inNLB : manifest.NetworkLoadBalancerConfiguration {
811+ Port : aws .String ("80" ),
812+ Aliases : manifest.Alias {String : aws .String ("v1.v2.mockDomain" )},
813+ },
814+ inEnvironment : & config.Environment {
815+ Name : mockEnvName ,
816+ Region : "us-west-2" ,
817+ },
818+ inApp : & config.Application {
819+ Name : mockAppName ,
820+ Domain : "mockDomain" ,
821+ },
822+ mock : func (m * deploySvcMocks ) {
823+ m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
824+ m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
825+ m .mockAppVersionGetter .EXPECT ().Version ().Return ("v1.0.0" , nil )
826+ m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
827+ },
828+ wantErr : fmt .Errorf (`alias "v1.v2.mockDomain" is not supported in hosted zones managed by Copilot` ),
829+ },
787830 "error if fail to deploy service" : {
788831 inEnvironment : & config.Environment {
789832 Name : mockEnvName ,
@@ -797,6 +840,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
797840 m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
798841 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
799842 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
843+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
844+ RootUserARN : "1234" ,
845+ }, nil )
800846 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).Return (errors .New ("some error" ))
801847 },
802848 wantErr : fmt .Errorf ("deploy service: some error" ),
@@ -814,6 +860,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
814860 m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
815861 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
816862 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
863+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
864+ RootUserARN : "1234" ,
865+ }, nil )
817866 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).Return (cloudformation .NewMockErrChangeSetEmpty ())
818867 },
819868 wantErr : fmt .Errorf ("deploy service: change set with name mockChangeSet for stack mockStack has no changes" ),
@@ -832,6 +881,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
832881 m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
833882 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
834883 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
884+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
885+ RootUserARN : "1234" ,
886+ }, nil )
835887 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).
836888 Return (nil )
837889 m .mockServiceUpdater .EXPECT ().LastUpdatedAt (mockAppName , mockEnvName , mockSvcName ).
@@ -853,6 +905,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
853905 m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
854906 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
855907 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
908+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
909+ RootUserARN : "1234" ,
910+ }, nil )
856911 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).
857912 Return (nil )
858913 m .mockServiceUpdater .EXPECT ().LastUpdatedAt (mockAppName , mockEnvName , mockSvcName ).
@@ -877,6 +932,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
877932 Return (cloudformation .NewMockErrChangeSetEmpty ())
878933 m .mockServiceUpdater .EXPECT ().LastUpdatedAt (mockAppName , mockEnvName , mockSvcName ).
879934 Return (mockBeforeTime , nil )
935+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
936+ RootUserARN : "1234" ,
937+ }, nil )
880938 m .mockSpinner .EXPECT ().Start (fmt .Sprintf (fmtForceUpdateSvcStart , mockSvcName , mockEnvName ))
881939 m .mockServiceUpdater .EXPECT ().ForceUpdateService (mockAppName , mockEnvName , mockSvcName ).Return (mockError )
882940 m .mockSpinner .EXPECT ().Stop (log .Serrorf (fmtForceUpdateSvcFailed , mockSvcName , mockEnvName , mockError ))
@@ -897,6 +955,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
897955 m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
898956 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
899957 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
958+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
959+ RootUserARN : "1234" ,
960+ }, nil )
900961 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).
901962 Return (cloudformation .NewMockErrChangeSetEmpty ())
902963 m .mockServiceUpdater .EXPECT ().LastUpdatedAt (mockAppName , mockEnvName , mockSvcName ).
@@ -931,8 +992,10 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
931992 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
932993 m .mockAppVersionGetter .EXPECT ().Version ().Return ("v1.0.0" , nil )
933994 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
995+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
996+ RootUserARN : "1234" ,
997+ }, nil )
934998 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).Return (nil )
935-
936999 },
9371000 },
9381001 "success with force update" : {
@@ -949,6 +1012,9 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
9491012 m .mockWs .EXPECT ().ReadWorkloadManifest (mockSvcName ).Return ([]byte {}, nil )
9501013 m .mockInterpolator .EXPECT ().Interpolate ("" ).Return ("" , nil )
9511014 m .mockEndpointGetter .EXPECT ().ServiceDiscoveryEndpoint ().Return ("mockApp.local" , nil )
1015+ m .mockIdentity .EXPECT ().Get ().Return (identity.Caller {
1016+ RootUserARN : "1234" ,
1017+ }, nil )
9521018 m .mockServiceDeployer .EXPECT ().DeployService (gomock .Any (), gomock .Any (), gomock .Any ()).
9531019 Return (cloudformation .NewMockErrChangeSetEmpty ())
9541020 m .mockServiceUpdater .EXPECT ().LastUpdatedAt (mockAppName , mockEnvName , mockSvcName ).
@@ -976,6 +1042,7 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
9761042 mockInterpolator : mocks .NewMockinterpolator (ctrl ),
9771043 mockEnvDescriber : mocks .NewMockenvDescriber (ctrl ),
9781044 mockSubnetLister : mocks .NewMockvpcSubnetLister (ctrl ),
1045+ mockIdentity : mocks .NewMockidentityService (ctrl ),
9791046 }
9801047 tc .mock (m )
9811048
@@ -993,6 +1060,7 @@ func TestSvcDeployOpts_deploySvc(t *testing.T) {
9931060 return m .mockAppVersionGetter , nil
9941061 },
9951062 endpointGetter : m .mockEndpointGetter ,
1063+ identity : m .mockIdentity ,
9961064 targetApp : tc .inApp ,
9971065 targetEnvironment : tc .inEnvironment ,
9981066 newInterpolator : func (app , env string ) interpolator {
0 commit comments