@@ -179,11 +179,41 @@ fn test_allow_to_build_usage_message() {
179179 assert all_strings_found
180180}
181181
182- fn test_if_no_description_given_usage_message_does_not_contain_descpription () {
182+ fn test_if_app_name_given_but_no_show_usage_message_still_contain_version () {
183183 mut fp := flag.new_flag_parser ([])
184184 fp.application ('flag_tool' )
185185 fp.version ('v0.0.0' )
186+ fp.description ('a description' )
186187 fp.bool ('a_bool' , 0 , false , '' )
188+ fp.options.show.clear (.name)
189+ assert fp.usage ().contains ('v0.0.0\n ---' )
190+ }
191+
192+ fn test_if_version_given_but_no_show_usage_message_does_not_contain_banner () {
193+ mut fp := flag.new_flag_parser ([])
194+ fp.application ('flag_tool' )
195+ fp.version ('v0.0.0' )
196+ fp.description ('a description' )
197+ fp.bool ('a_bool' , 0 , false , '' )
198+ fp.options.show.clear (.version)
199+ assert ! fp.usage ().contains ('v0.0.0\n ---' )
200+ }
201+
202+ fn test_if_no_description_given_usage_message_does_not_contain_description () {
203+ mut fp := flag.new_flag_parser ([])
204+ fp.application ('flag_tool' )
205+ fp.version ('v0.0.0' )
206+ fp.bool ('a_bool' , 0 , false , '' )
207+ assert ! fp.usage ().contains ('Description:' )
208+ }
209+
210+ fn test_if_description_given_but_no_show_usage_message_does_not_contain_description () {
211+ mut fp := flag.new_flag_parser ([])
212+ fp.application ('flag_tool' )
213+ fp.version ('v0.0.0' )
214+ fp.description ('a description' )
215+ fp.bool ('a_bool' , 0 , false , '' )
216+ fp.options.show.clear (.description)
187217 assert ! fp.usage ().contains ('Description:' )
188218}
189219
@@ -194,6 +224,34 @@ fn test_if_no_options_given_usage_message_does_not_contain_options() {
194224 assert ! fp.usage ().contains ('Options:' )
195225}
196226
227+ fn test_if_options_given_but_no_show_flag_header_usage_message_does_not_contain_flag_header () {
228+ mut fp := flag.new_flag_parser ([])
229+ fp.application ('flag_tool' )
230+ fp.version ('v0.0.0' )
231+ fp.int ('abc' , `a` , 1 , '' )
232+ fp.options.show.clear (.flags_header)
233+ assert ! fp.usage ().contains ('Options:' )
234+ }
235+
236+ fn test_if_options_given_but_no_show_usage_message_does_not_contain_options () {
237+ mut fp := flag.new_flag_parser ([])
238+ fp.application ('flag_tool' )
239+ fp.version ('v0.0.0' )
240+ fp.int ('abc' , `a` , 1 , '' )
241+ fp.options.show.clear (.flags)
242+ assert ! fp.usage ().contains ('Options:' )
243+ }
244+
245+ fn test_if_footer_given_but_no_show_usage_message_does_not_contain_footer () {
246+ mut fp := flag.new_flag_parser ([])
247+ fp.application ('flag_tool' )
248+ fp.version ('v0.0.0' )
249+ fp.int ('abc' , `a` , 1 , '' )
250+ fp.footers << 'footer1'
251+ fp.options.show.clear (.footer)
252+ assert ! fp.usage ().contains ('footer1' )
253+ }
254+
197255fn test_default_val_descriptions_for_bools () {
198256 mut fp := flag.new_flag_parser ([])
199257 fp.bool ('a_bool' , `b` , true , '' )
0 commit comments