| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: false | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-06-20 02:10:54 -04:00
										 |  |  | require "messages" | 
					
						
							|  |  |  | require "spec_helper" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | describe Messages do | 
					
						
							| 
									
										
										
										
											2018-09-20 09:07:56 +01:00
										 |  |  |   let(:messages) { described_class.new } | 
					
						
							| 
									
										
										
										
											2018-11-28 20:51:55 +01:00
										 |  |  |   let(:test_formula) { formula("foo") { url("https://brew.sh/foo-0.1.tgz") } } | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |   let(:elapsed_time) { 1.1 } | 
					
						
							| 
									
										
										
										
											2018-06-20 02:10:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |   describe "#record_caveats" do | 
					
						
							|  |  |  |     it "adds a caveat" do | 
					
						
							|  |  |  |       expect { | 
					
						
							|  |  |  |         messages.record_caveats(test_formula, "Zsh completions were installed") | 
					
						
							| 
									
										
										
										
											2022-05-18 15:37:23 -04:00
										 |  |  |       }.to change(messages.caveats, :count).by(1) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-06-20 02:10:54 -04:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |   describe "#package_installed" do | 
					
						
							|  |  |  |     it "increases the package count" do | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       expect { | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |         messages.package_installed(test_formula, elapsed_time) | 
					
						
							|  |  |  |       }.to change(messages, :package_count).by(1) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-06-20 02:10:54 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |     it "adds to install_times" do | 
					
						
							|  |  |  |       expect { | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |         messages.package_installed(test_formula, elapsed_time) | 
					
						
							| 
									
										
										
										
											2022-05-18 15:37:23 -04:00
										 |  |  |       }.to change(messages.install_times, :count).by(1) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-06-20 02:10:54 -04:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2018-06-20 00:54:14 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |   describe "#display_messages" do | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |     context "when package_count is less than two" do | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       before do | 
					
						
							|  |  |  |         messages.record_caveats(test_formula, "Zsh completions were installed") | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |         messages.package_installed(test_formula, elapsed_time) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       end | 
					
						
							| 
									
										
										
										
											2018-06-20 00:54:14 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       it "doesn't print caveat details" do | 
					
						
							|  |  |  |         expect { messages.display_messages }.not_to output.to_stdout | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     context "when caveats is empty" do | 
					
						
							|  |  |  |       before do | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |         messages.package_installed(test_formula, elapsed_time) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it "doesn't print caveat details" do | 
					
						
							|  |  |  |         expect { messages.display_messages }.not_to output.to_stdout | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-06-20 00:54:14 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |     context "when package_count is greater than one and caveats are present" do | 
					
						
							| 
									
										
										
										
											2018-11-28 20:51:55 +01:00
										 |  |  |       let(:test_formula2) { formula("bar") { url("https://brew.sh/bar-0.1.tgz") } } | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |       before do | 
					
						
							|  |  |  |         messages.record_caveats(test_formula, "Zsh completions were installed") | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |         messages.package_installed(test_formula, elapsed_time) | 
					
						
							|  |  |  |         messages.package_installed(test_formula2, elapsed_time) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it "prints caveat details" do | 
					
						
							|  |  |  |         expect { messages.display_messages }.to output( | 
					
						
							| 
									
										
										
										
											2019-02-11 09:50:09 +00:00
										 |  |  |           <<~EOS, | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |             ==> Caveats | 
					
						
							|  |  |  |             ==> foo | 
					
						
							|  |  |  |             Zsh completions were installed | 
					
						
							|  |  |  |           EOS | 
					
						
							|  |  |  |         ).to_stdout | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-25 21:33:48 +02:00
										 |  |  |     context "when the `display_times` argument is true" do | 
					
						
							|  |  |  |       context "when `install_times` is empty" do | 
					
						
							|  |  |  |         it "doesn't print anything" do | 
					
						
							|  |  |  |           expect { messages.display_messages(display_times: true) }.not_to output.to_stdout | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-25 21:33:48 +02:00
										 |  |  |       context "when `install_times` is present" do | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |         before do | 
					
						
							| 
									
										
										
										
											2021-09-02 08:42:48 -07:00
										 |  |  |           messages.package_installed(test_formula, elapsed_time) | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |         end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         it "prints installation times" do | 
					
						
							| 
									
										
										
										
											2020-07-25 21:33:48 +02:00
										 |  |  |           expect { messages.display_messages(display_times: true) }.to output( | 
					
						
							| 
									
										
										
										
											2019-02-11 09:50:09 +00:00
										 |  |  |             <<~EOS, | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |               ==> Installation times | 
					
						
							|  |  |  |               foo                       1.100 s | 
					
						
							|  |  |  |             EOS | 
					
						
							|  |  |  |           ).to_stdout | 
					
						
							|  |  |  |         end | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-25 21:33:48 +02:00
										 |  |  |     context "when the `display_times` argument isn't specified" do | 
					
						
							| 
									
										
										
										
											2018-09-03 16:26:11 -07:00
										 |  |  |       it "doesn't print installation times" do | 
					
						
							|  |  |  |         expect { messages.display_messages }.not_to output.to_stdout | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2018-06-20 00:54:14 -04:00
										 |  |  |   end | 
					
						
							| 
									
										
										
										
											2018-07-13 10:02:39 +01:00
										 |  |  | end |