| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  | require_relative "shared_examples/invalid_option" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-05 19:26:56 +01:00
										 |  |  | describe Hbc::CLI::List, :cask do | 
					
						
							| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  |   it_behaves_like "a command that handles invalid options" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |   it "lists the installed Casks in a pretty fashion" do | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |     casks = %w[local-caffeine local-transmission].map { |c| Hbc::CaskLoader.load(c) } | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |     casks.each do |c| | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       InstallHelper.install_with_caskfile(c) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |     expect { | 
					
						
							| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  |       described_class.run | 
					
						
							| 
									
										
										
										
											2017-10-15 02:28:32 +02:00
										 |  |  |     }.to output(<<~EOS).to_stdout | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |       local-caffeine | 
					
						
							|  |  |  |       local-transmission | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-07-08 19:33:44 -07:00
										 |  |  |   it "lists full names" do | 
					
						
							|  |  |  |     casks = %w[
 | 
					
						
							|  |  |  |       local-caffeine | 
					
						
							|  |  |  |       third-party/tap/third-party-cask | 
					
						
							|  |  |  |       local-transmission | 
					
						
							|  |  |  |     ].map { |c| Hbc::CaskLoader.load(c) } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     casks.each do |c| | 
					
						
							|  |  |  |       InstallHelper.install_with_caskfile(c) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect { | 
					
						
							| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  |       described_class.run("--full-name") | 
					
						
							| 
									
										
										
										
											2017-10-15 02:28:32 +02:00
										 |  |  |     }.to output(<<~EOS).to_stdout | 
					
						
							| 
									
										
										
										
											2017-07-08 19:33:44 -07:00
										 |  |  |       local-caffeine | 
					
						
							|  |  |  |       local-transmission | 
					
						
							|  |  |  |       third-party/tap/third-party-cask | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |   describe "lists versions" do | 
					
						
							|  |  |  |     let(:casks) { ["local-caffeine", "local-transmission"] } | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |     let(:expected_output) { | 
					
						
							| 
									
										
										
										
											2017-10-15 02:28:32 +02:00
										 |  |  |       <<~EOS | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |         local-caffeine 1.2.3
 | 
					
						
							|  |  |  |         local-transmission 2.61
 | 
					
						
							|  |  |  |       EOS | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     before(:each) do | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |       casks.map(&Hbc::CaskLoader.method(:load)).each(&InstallHelper.method(:install_with_caskfile)) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "of all installed Casks" do | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       expect { | 
					
						
							| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  |         described_class.run("--versions") | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       }.to output(expected_output).to_stdout | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "of given Casks" do | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       expect { | 
					
						
							| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  |         described_class.run("--versions", "local-caffeine", "local-transmission") | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       }.to output(expected_output).to_stdout | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   describe "given a set of installed Casks" do | 
					
						
							| 
									
										
										
										
											2017-10-07 15:58:49 +02:00
										 |  |  |     let(:caffeine) { Hbc::CaskLoader.load(cask_path("local-caffeine")) } | 
					
						
							|  |  |  |     let(:transmission) { Hbc::CaskLoader.load(cask_path("local-transmission")) } | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     let(:casks) { [caffeine, transmission] } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "lists the installed files for those Casks" do | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       casks.each(&InstallHelper.method(:install_without_artifacts_with_caskfile)) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-04 17:54:52 +02:00
										 |  |  |       transmission.artifacts.select { |a| a.is_a?(Hbc::Artifact::App) }.each do |artifact| | 
					
						
							|  |  |  |         artifact.install_phase(command: Hbc::NeverSudoSystemCommand, force: false) | 
					
						
							|  |  |  |       end | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-08 12:37:45 +01:00
										 |  |  |       expect { | 
					
						
							| 
									
										
										
										
											2017-10-03 10:49:58 +02:00
										 |  |  |         described_class.run("local-transmission", "local-caffeine") | 
					
						
							| 
									
										
										
										
											2017-10-15 02:28:32 +02:00
										 |  |  |       }.to output(<<~EOS).to_stdout | 
					
						
							| 
									
										
										
										
											2016-10-19 16:42:31 -04:00
										 |  |  |         ==> Apps | 
					
						
							|  |  |  |         #{Hbc.appdir.join("Transmission.app")} (#{Hbc.appdir.join("Transmission.app").abv}) | 
					
						
							|  |  |  |         ==> Apps | 
					
						
							|  |  |  |         Missing App: #{Hbc.appdir.join("Caffeine.app")} | 
					
						
							|  |  |  |       EOS | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |