| 
									
										
										
										
											2019-04-19 15:38:03 +09:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-10 22:07:06 +09:00
										 |  |  | require "cask/installer" | 
					
						
							|  |  |  | require "cask/reinstall" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-02-18 15:11:11 -08:00
										 |  |  | RSpec.describe Cask::Reinstall, :cask do | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  |   it "displays the reinstallation progress" do | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     caffeine = Cask::CaskLoader.load(cask_path("local-caffeine")) | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     Cask::Installer.new(caffeine).install | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-10-15 02:28:32 +02:00
										 |  |  |     output = Regexp.new <<~EOS | 
					
						
							| 
									
										
										
										
											2017-03-19 19:56:41 -05:00
										 |  |  |       ==> Downloading file:.*caffeine.zip | 
					
						
							| 
									
										
										
										
											2018-04-29 05:34:32 +02:00
										 |  |  |       Already downloaded: .*--caffeine.zip | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  |       ==> Uninstalling Cask local-caffeine | 
					
						
							| 
									
										
										
										
											2021-01-26 15:21:24 -05:00
										 |  |  |       ==> Backing App 'Caffeine.app' up to '.*Caffeine.app' | 
					
						
							|  |  |  |       ==> Removing App '.*Caffeine.app' | 
					
						
							| 
									
										
										
										
											2017-11-10 10:05:18 -03:00
										 |  |  |       ==> Purging files for version 1.2.3 of Cask local-caffeine | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  |       ==> Installing Cask local-caffeine | 
					
						
							| 
									
										
										
										
											2021-01-26 15:21:24 -05:00
										 |  |  |       ==> Moving App 'Caffeine.app' to '.*Caffeine.app' | 
					
						
							| 
									
										
										
										
											2017-03-19 19:56:41 -05:00
										 |  |  |       .*local-caffeine was successfully installed! | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  |     EOS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-08 23:14:46 +00:00
										 |  |  |     expect do | 
					
						
							| 
									
										
										
										
											2023-04-10 22:07:06 +09:00
										 |  |  |       described_class.reinstall_casks(Cask::CaskLoader.load("local-caffeine")) | 
					
						
							| 
									
										
										
										
											2023-03-08 23:14:46 +00:00
										 |  |  |     end.to output(output).to_stdout | 
					
						
							| 
									
										
										
										
											2017-03-18 18:57:04 -05:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-05 00:57:33 +01:00
										 |  |  |   it "displays the reinstallation progress with zapping" do | 
					
						
							|  |  |  |     caffeine = Cask::CaskLoader.load(cask_path("local-caffeine")) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     Cask::Installer.new(caffeine).install | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     output = Regexp.new <<~EOS | 
					
						
							|  |  |  |       ==> Downloading file:.*caffeine.zip | 
					
						
							|  |  |  |       Already downloaded: .*--caffeine.zip | 
					
						
							|  |  |  |       ==> Implied `brew uninstall --cask local-caffeine` | 
					
						
							|  |  |  |       ==> Backing App 'Caffeine.app' up to '.*Caffeine.app' | 
					
						
							|  |  |  |       ==> Removing App '.*Caffeine.app' | 
					
						
							|  |  |  |       ==> Dispatching zap stanza | 
					
						
							|  |  |  |       ==> Trashing files: | 
					
						
							| 
									
										
										
										
											2022-12-13 10:54:22 +00:00
										 |  |  |       .*org.example.caffeine.plist | 
					
						
							| 
									
										
										
										
											2022-04-05 00:57:33 +01:00
										 |  |  |       ==> Removing all staged versions of Cask 'local-caffeine' | 
					
						
							|  |  |  |       ==> Installing Cask local-caffeine | 
					
						
							|  |  |  |       ==> Moving App 'Caffeine.app' to '.*Caffeine.app' | 
					
						
							|  |  |  |       .*local-caffeine was successfully installed! | 
					
						
							|  |  |  |     EOS | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-08 23:14:46 +00:00
										 |  |  |     expect do | 
					
						
							| 
									
										
										
										
											2023-04-10 22:07:06 +09:00
										 |  |  |       described_class.reinstall_casks(Cask::CaskLoader.load("local-caffeine"), zap: true) | 
					
						
							| 
									
										
										
										
											2023-03-08 23:14:46 +00:00
										 |  |  |     end.to output(output).to_stdout | 
					
						
							| 
									
										
										
										
											2022-04-05 00:57:33 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-08 13:29:46 +01:00
										 |  |  |   it "allows reinstalling a Cask" do | 
					
						
							| 
									
										
										
										
											2023-04-19 21:31:22 +09:00
										 |  |  |     Cask::Installer.new(Cask::CaskLoader.load(cask_path("local-transmission"))).install | 
					
						
							| 
									
										
										
										
											2017-07-29 19:55:05 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed | 
					
						
							| 
									
										
										
										
											2017-02-08 13:29:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-10 22:07:06 +09:00
										 |  |  |     described_class.reinstall_casks(Cask::CaskLoader.load("local-transmission")) | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed | 
					
						
							| 
									
										
										
										
											2017-02-08 13:29:46 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   it "allows reinstalling a non installed Cask" do | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     expect(Cask::CaskLoader.load(cask_path("local-transmission"))).not_to be_installed | 
					
						
							| 
									
										
										
										
											2017-02-08 13:29:46 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-10 22:07:06 +09:00
										 |  |  |     described_class.reinstall_casks(Cask::CaskLoader.load("local-transmission")) | 
					
						
							| 
									
										
										
										
											2018-09-06 08:29:14 +02:00
										 |  |  |     expect(Cask::CaskLoader.load(cask_path("local-transmission"))).to be_installed | 
					
						
							| 
									
										
										
										
											2017-02-08 13:29:46 +01:00
										 |  |  |   end | 
					
						
							|  |  |  | end |