@@ -220,3 +220,47 @@ func TestSetKOTSDefaultReleaseParams_SetsEnsureChannelAndLint(t *testing.T) {
220220 assert .True (t , args .createReleasePromoteEnsureChannel , "ensure-channel should be set to true" )
221221 assert .True (t , args .createReleaseLint , "lint should be set to true" )
222222}
223+
224+ // TestRequiredFlagRequiresPromote tests that --required fails without --promote
225+ func TestRequiredFlagRequiresPromote (t * testing.T ) {
226+ r := & runners {
227+ args : runnerArgs {
228+ createReleasePromoteRequired : true ,
229+ createReleasePromote : "" , // No promote channel
230+ createReleaseYamlDir : "./manifests" ,
231+ },
232+ appType : "kots" ,
233+ }
234+
235+ err := r .validateReleaseCreateParams ()
236+ assert .Error (t , err )
237+ assert .Contains (t , err .Error (), "--required can only be used with --promote" )
238+ }
239+
240+ // TestRequiredFlagWithPromote tests that --required works with --promote
241+ func TestRequiredFlagWithPromote (t * testing.T ) {
242+ r := & runners {
243+ args : runnerArgs {
244+ createReleasePromoteRequired : true ,
245+ createReleasePromote : "Unstable" ,
246+ createReleaseYamlDir : "./manifests" ,
247+ },
248+ appType : "kots" ,
249+ }
250+
251+ err := r .validateReleaseCreateParams ()
252+ assert .NoError (t , err )
253+ }
254+
255+ // TestRequiredFlagDefaultsFalse tests that --required defaults to false
256+ func TestRequiredFlagDefaultsFalse (t * testing.T ) {
257+ r := & runners {
258+ args : runnerArgs {
259+ createReleasePromote : "Unstable" ,
260+ createReleaseYamlDir : "./manifests" ,
261+ },
262+ }
263+
264+ assert .False (t , r .args .createReleasePromoteRequired ,
265+ "--required should default to false" )
266+ }
0 commit comments