| 
									
										
										
										
											2020-10-10 14:16:11 +02:00
										 |  |  | # typed: false | 
					
						
							| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  | describe Cask::Cmd::List, :cask do | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |   it "lists the installed Casks in a pretty fashion" do | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     casks = %w[local-caffeine local-transmission].map { |c| Cask::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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-09 22:58:48 +02:00
										 |  |  |   it "lists oneline" do | 
					
						
							|  |  |  |     casks = %w[
 | 
					
						
							|  |  |  |       local-caffeine | 
					
						
							|  |  |  |       third-party/tap/third-party-cask | 
					
						
							|  |  |  |       local-transmission | 
					
						
							|  |  |  |     ].map { |c| Cask::CaskLoader.load(c) } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     casks.each do |c| | 
					
						
							|  |  |  |       InstallHelper.install_with_caskfile(c) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     expect { | 
					
						
							|  |  |  |       described_class.run("-1") | 
					
						
							|  |  |  |     }.to output(<<~EOS).to_stdout | 
					
						
							|  |  |  |       local-caffeine | 
					
						
							|  |  |  |       local-transmission | 
					
						
							|  |  |  |       third-party-cask | 
					
						
							|  |  |  |     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 | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     ].map { |c| Cask::CaskLoader.load(c) } | 
					
						
							| 
									
										
										
										
											2017-07-08 19:33:44 -07:00
										 |  |  | 
 | 
					
						
							|  |  |  |     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 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-03-25 13:30:37 +01:00
										 |  |  |     before do | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |       casks.map(&Cask::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") | 
					
						
							| 
									
										
										
										
											2020-07-09 22:58:48 +02:00
										 |  |  |       }.to output(expected_output).to_stdout | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   describe "lists json" do | 
					
						
							| 
									
										
										
										
											2021-02-05 18:54:28 +01:00
										 |  |  |     let(:casks) { ["local-caffeine", "local-transmission", "third-party/tap/third-party-cask"] } | 
					
						
							| 
									
										
										
										
											2020-07-09 22:58:48 +02:00
										 |  |  |     let(:expected_output) { | 
					
						
							|  |  |  |       <<~EOS | 
					
						
							| 
									
										
										
										
											2021-04-09 14:06:21 +01:00
										 |  |  |         [ | 
					
						
							|  |  |  |           { | 
					
						
							|  |  |  |             "token": "local-caffeine", | 
					
						
							|  |  |  |             "full_token": "local-caffeine", | 
					
						
							|  |  |  |             "tap": "homebrew/cask", | 
					
						
							|  |  |  |             "name": [ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |             "desc": null, | 
					
						
							|  |  |  |             "homepage": "https://brew.sh/", | 
					
						
							| 
									
										
										
										
											2021-06-15 20:47:20 -07:00
										 |  |  |             "url": "file://#{TEST_FIXTURE_DIR}/cask/caffeine.zip", | 
					
						
							| 
									
										
										
										
											2021-04-09 14:06:21 +01:00
										 |  |  |             "appcast": null, | 
					
						
							|  |  |  |             "version": "1.2.3", | 
					
						
							|  |  |  |             "installed": "1.2.3", | 
					
						
							|  |  |  |             "outdated": false, | 
					
						
							|  |  |  |             "sha256": "67cdb8a02803ef37fdbf7e0be205863172e41a561ca446cd84f0d7ab35a99d94", | 
					
						
							|  |  |  |             "artifacts": [ | 
					
						
							|  |  |  |               [ | 
					
						
							|  |  |  |                 "Caffeine.app" | 
					
						
							|  |  |  |               ] | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |             "caveats": null, | 
					
						
							|  |  |  |             "depends_on": { | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             "conflicts_with": null, | 
					
						
							|  |  |  |             "container": null, | 
					
						
							|  |  |  |             "auto_updates": null | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |           { | 
					
						
							|  |  |  |             "token": "local-transmission", | 
					
						
							|  |  |  |             "full_token": "local-transmission", | 
					
						
							|  |  |  |             "tap": "homebrew/cask", | 
					
						
							|  |  |  |             "name": [ | 
					
						
							|  |  |  |               "Transmission" | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |             "desc": "BitTorrent client", | 
					
						
							|  |  |  |             "homepage": "https://transmissionbt.com/", | 
					
						
							| 
									
										
										
										
											2021-06-15 20:47:20 -07:00
										 |  |  |             "url": "file://#{TEST_FIXTURE_DIR}/cask/transmission-2.61.dmg", | 
					
						
							| 
									
										
										
										
											2021-04-09 14:06:21 +01:00
										 |  |  |             "appcast": null, | 
					
						
							|  |  |  |             "version": "2.61", | 
					
						
							|  |  |  |             "installed": "2.61", | 
					
						
							|  |  |  |             "outdated": false, | 
					
						
							|  |  |  |             "sha256": "e44ffa103fbf83f55c8d0b1bea309a43b2880798dae8620b1ee8da5e1095ec68", | 
					
						
							|  |  |  |             "artifacts": [ | 
					
						
							|  |  |  |               [ | 
					
						
							|  |  |  |                 "Transmission.app" | 
					
						
							|  |  |  |               ] | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |             "caveats": null, | 
					
						
							|  |  |  |             "depends_on": { | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             "conflicts_with": null, | 
					
						
							|  |  |  |             "container": null, | 
					
						
							|  |  |  |             "auto_updates": null | 
					
						
							|  |  |  |           }, | 
					
						
							|  |  |  |           { | 
					
						
							|  |  |  |             "token": "third-party-cask", | 
					
						
							|  |  |  |             "full_token": "third-party/tap/third-party-cask", | 
					
						
							|  |  |  |             "tap": "third-party/tap", | 
					
						
							|  |  |  |             "name": [ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |             "desc": null, | 
					
						
							|  |  |  |             "homepage": "https://brew.sh/", | 
					
						
							|  |  |  |             "url": "https://brew.sh/ThirdParty.dmg", | 
					
						
							|  |  |  |             "appcast": null, | 
					
						
							|  |  |  |             "version": "1.2.3", | 
					
						
							|  |  |  |             "installed": "1.2.3", | 
					
						
							|  |  |  |             "outdated": false, | 
					
						
							|  |  |  |             "sha256": "8c62a2b791cf5f0da6066a0a4b6e85f62949cd60975da062df44adf887f4370b", | 
					
						
							|  |  |  |             "artifacts": [ | 
					
						
							|  |  |  |               [ | 
					
						
							|  |  |  |                 "ThirdParty.app" | 
					
						
							|  |  |  |               ] | 
					
						
							|  |  |  |             ], | 
					
						
							|  |  |  |             "caveats": null, | 
					
						
							|  |  |  |             "depends_on": { | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |             "conflicts_with": null, | 
					
						
							|  |  |  |             "container": null, | 
					
						
							|  |  |  |             "auto_updates": null | 
					
						
							|  |  |  |           } | 
					
						
							|  |  |  |         ] | 
					
						
							| 
									
										
										
										
											2020-07-09 22:58:48 +02:00
										 |  |  |       EOS | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     before do | 
					
						
							|  |  |  |       casks.map(&Cask::CaskLoader.method(:load)).each(&InstallHelper.method(:install_with_caskfile)) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "of all installed Casks" do | 
					
						
							|  |  |  |       expect { | 
					
						
							|  |  |  |         described_class.run("--json") | 
					
						
							|  |  |  |       }.to output(expected_output).to_stdout | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "of given Casks" do | 
					
						
							|  |  |  |       expect { | 
					
						
							| 
									
										
										
										
											2021-02-05 18:54:28 +01:00
										 |  |  |         described_class.run("--json", "local-caffeine", "local-transmission", "third-party/tap/third-party-cask") | 
					
						
							| 
									
										
										
										
											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 | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     let(:caffeine) { Cask::CaskLoader.load(cask_path("local-caffeine")) } | 
					
						
							|  |  |  |     let(:transmission) { Cask::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
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |       transmission.artifacts.select { |a| a.is_a?(Cask::Artifact::App) }.each do |artifact| | 
					
						
							| 
									
										
										
										
											2018-07-19 23:56:51 +02:00
										 |  |  |         artifact.install_phase(command: NeverSudoSystemCommand, force: false) | 
					
						
							| 
									
										
										
										
											2017-10-04 17:54:52 +02:00
										 |  |  |       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 | 
					
						
							| 
									
										
										
										
											2020-08-14 23:12:17 +02:00
										 |  |  |         ==> App | 
					
						
							| 
									
										
										
										
											2019-02-02 17:11:37 +01:00
										 |  |  |         #{transmission.config.appdir.join("Transmission.app")} (#{transmission.config.appdir.join("Transmission.app").abv}) | 
					
						
							| 
									
										
										
										
											2020-08-14 23:12:17 +02:00
										 |  |  |         ==> App | 
					
						
							| 
									
										
										
										
											2019-02-02 17:11:37 +01:00
										 |  |  |         Missing App: #{caffeine.config.appdir.join("Caffeine.app")} | 
					
						
							| 
									
										
										
										
											2016-10-19 16:42:31 -04:00
										 |  |  |       EOS | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |