@@ -9,11 +9,13 @@ import (
99 ec2types "github.com/aws/aws-sdk-go-v2/service/ec2/types"
1010 . "github.com/onsi/ginkgo/v2"
1111 . "github.com/onsi/gomega"
12+ v1 "github.com/openshift-online/ocm-api-model/clientapi/clustersmgmt/v1"
1213 cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
1314 "github.com/spf13/cobra"
1415
1516 mock "github.com/openshift/rosa/pkg/aws"
1617 "github.com/openshift/rosa/pkg/helper/features"
18+ mpHelpers "github.com/openshift/rosa/pkg/helper/machinepools"
1719 mpOpts "github.com/openshift/rosa/pkg/options/machinepool"
1820 "github.com/openshift/rosa/pkg/reporter"
1921 "github.com/openshift/rosa/pkg/rosa"
@@ -909,3 +911,71 @@ var _ = Describe("isDedicatedHost Function", func() {
909911 Expect (result ).To (Equal (displayValueUnknown ))
910912 })
911913})
914+
915+ var _ = Describe ("ValidateImageType" , func () {
916+ It ("OK: Pass Windows + Default string as image type" , func () {
917+ Expect (mpHelpers .IsValidImageType (string (v1 .ImageTypeWindows ))).To (BeTrue ())
918+ Expect (mpHelpers .IsValidImageType (string (v1 .ImageTypeDefault ))).To (BeTrue ())
919+ })
920+ It ("KO: Do not pass anything else as image type" , func () {
921+ Expect (mpHelpers .IsValidImageType ("" )).To (BeFalse ())
922+ Expect (mpHelpers .IsValidImageType ("win-li" )).To (BeFalse ())
923+ Expect (mpHelpers .IsValidImageType ("windows" )).To (BeFalse ())
924+ Expect (mpHelpers .IsValidImageType ("unix" )).To (BeFalse ())
925+ Expect (mpHelpers .IsValidImageType ("123123123" )).To (BeFalse ())
926+ })
927+ It ("OK: Validate full flow works" , func () {
928+ cmd := & cobra.Command {}
929+ args := & mpOpts.CreateMachinepoolUserOptions {}
930+ cmd .Flags ().StringVar (& args .Type , "type" , "" , "" )
931+ cluster , err := cmv1 .NewCluster ().Hypershift (cmv1 .NewHypershift ().Enabled (true )).Build ()
932+ Expect (err ).ToNot (HaveOccurred ())
933+
934+ args .Type = string (v1 .ImageTypeWindows )
935+ cmd .SetArgs ([]string {fmt .Sprintf ("--type=%s" , args .Type )})
936+ Expect (cmd .Execute ()).ToNot (HaveOccurred ())
937+ err = ValidateImageType (cmd , args , cluster )
938+ Expect (err ).ToNot (HaveOccurred ())
939+
940+ args .Type = string (v1 .ImageTypeDefault )
941+ cmd .SetArgs ([]string {fmt .Sprintf ("--type=%s" , args .Type )})
942+ Expect (cmd .Execute ()).ToNot (HaveOccurred ())
943+ err = ValidateImageType (cmd , args , cluster )
944+ Expect (err ).ToNot (HaveOccurred ())
945+ })
946+ It ("KO: Validate full flow fails" , func () {
947+ cmd := & cobra.Command {}
948+ args := & mpOpts.CreateMachinepoolUserOptions {}
949+ cluster , err := cmv1 .NewCluster ().Hypershift (cmv1 .NewHypershift ().Enabled (true )).Build ()
950+ Expect (err ).ToNot (HaveOccurred ())
951+
952+ cmd .Flags ().StringVar (& args .Type , "type" , "" , "" )
953+
954+ args .Type = ""
955+ cmd .SetArgs ([]string {fmt .Sprintf ("--type=%s" , args .Type )})
956+ Expect (cmd .Execute ()).ToNot (HaveOccurred ())
957+ err = ValidateImageType (cmd , args , cluster )
958+ Expect (err ).To (HaveOccurred ())
959+
960+ args .Type = "windows"
961+ cmd .SetArgs ([]string {fmt .Sprintf ("--type=%s" , args .Type )})
962+ Expect (cmd .Execute ()).ToNot (HaveOccurred ())
963+ err = ValidateImageType (cmd , args , cluster )
964+ Expect (err ).To (HaveOccurred ())
965+
966+ args .Type = "w123123123"
967+ cmd .SetArgs ([]string {fmt .Sprintf ("--type=%s" , args .Type )})
968+ Expect (cmd .Execute ()).ToNot (HaveOccurred ())
969+ err = ValidateImageType (cmd , args , cluster )
970+ Expect (err ).To (HaveOccurred ())
971+
972+ clusterClassic , err := cmv1 .NewCluster ().Hypershift (cmv1 .NewHypershift ().Enabled (false )).Build ()
973+ Expect (err ).ToNot (HaveOccurred ())
974+
975+ args .Type = "w123123123"
976+ cmd .SetArgs ([]string {fmt .Sprintf ("--type=%s" , args .Type )})
977+ Expect (cmd .Execute ()).ToNot (HaveOccurred ())
978+ err = ValidateImageType (cmd , args , clusterClassic )
979+ Expect (err ).To (HaveOccurred ())
980+ })
981+ })
0 commit comments