Add testing for describing launch template data

This commit is contained in:
Austin Siu 2022-03-01 13:40:16 -06:00 committed by Austin Siu
parent 923fe205cd
commit 06ca5c8993
2 changed files with 68 additions and 1 deletions

View File

@ -277,7 +277,7 @@ func (m *awsWrapper) getLaunchTemplateData(templateName string, templateVersion
return nil, err
}
if describeData == nil || len(describeData.LaunchTemplateVersions) == 0 {
return nil, fmt.Errorf("unable to find template versions")
return nil, fmt.Errorf("unable to find template versions for launch template %s", templateName)
}
if describeData.LaunchTemplateVersions[0].LaunchTemplateData == nil {
return nil, fmt.Errorf("no data found for launch template %s, version %s", templateName, templateVersion)

View File

@ -17,6 +17,7 @@ limitations under the License.
package aws
import (
"errors"
"fmt"
"os"
"strconv"
@ -556,6 +557,72 @@ func TestGetInstanceTypesFromInstanceRequirementsInLaunchTemplate(t *testing.T)
assert.Equal(t, "g4dn.xlarge", result)
}
func TestGetLaunchTemplateData(t *testing.T) {
e := &ec2Mock{}
awsWrapper := &awsWrapper{
ec2I: e,
}
testCases := []struct {
testName string
describeTemplateData *ec2.DescribeLaunchTemplateVersionsOutput
expectedData *ec2.ResponseLaunchTemplateData
expectedErr error
}{
{
"no launch template version found",
&ec2.DescribeLaunchTemplateVersionsOutput{
LaunchTemplateVersions: []*ec2.LaunchTemplateVersion{},
},
nil,
errors.New("unable to find template versions for launch template launchTemplateName"),
},
{
"no data found for launch template",
&ec2.DescribeLaunchTemplateVersionsOutput{
LaunchTemplateVersions: []*ec2.LaunchTemplateVersion{
{
LaunchTemplateName: aws.String("launchTemplateName"),
LaunchTemplateData: nil,
},
},
},
nil,
errors.New("no data found for launch template launchTemplateName, version 1"),
},
{
"launch template data found successfully",
&ec2.DescribeLaunchTemplateVersionsOutput{
LaunchTemplateVersions: []*ec2.LaunchTemplateVersion{
{
LaunchTemplateName: aws.String("launchTemplateName"),
LaunchTemplateData: &ec2.ResponseLaunchTemplateData{
ImageId: aws.String("123"),
},
},
},
},
&ec2.ResponseLaunchTemplateData{
ImageId: aws.String("123"),
},
nil,
},
}
describeTemplateInput := &ec2.DescribeLaunchTemplateVersionsInput{
LaunchTemplateName: aws.String("launchTemplateName"),
Versions: []*string{aws.String("1")},
}
for _, testCase := range testCases {
e.On("DescribeLaunchTemplateVersions", describeTemplateInput).Return(testCase.describeTemplateData).Once()
describeData, err := awsWrapper.getLaunchTemplateData("launchTemplateName", "1")
assert.Equal(t, testCase.expectedData, describeData)
assert.Equal(t, testCase.expectedErr, err)
}
}
func TestBuildLaunchTemplateFromSpec(t *testing.T) {
assert := assert.New(t)