| 
									
										
										
										
											2017-03-05 19:26:56 +01:00
										 |  |  | describe Hbc::Scopes, :cask do | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |   describe "installed" do | 
					
						
							|  |  |  |     it "returns a list installed Casks by loading Casks for all the dirs that exist in the caskroom" do | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |       allow(Hbc::CaskLoader).to receive(:load) { |token| "loaded-#{token}" } | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-08 08:29:41 +01:00
										 |  |  |       Hbc.caskroom.join("cask-bar").mkpath | 
					
						
							|  |  |  |       Hbc.caskroom.join("cask-foo").mkpath | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  | 
 | 
					
						
							|  |  |  |       installed_casks = Hbc.installed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |       expect(Hbc::CaskLoader).to have_received(:load).with("cask-bar") | 
					
						
							|  |  |  |       expect(Hbc::CaskLoader).to have_received(:load).with("cask-foo") | 
					
						
							| 
									
										
										
										
											2017-02-08 08:29:41 +01:00
										 |  |  |       expect(installed_casks).to eq( | 
					
						
							|  |  |  |         %w[
 | 
					
						
							|  |  |  |           loaded-cask-bar | 
					
						
							|  |  |  |           loaded-cask-foo | 
					
						
							| 
									
										
										
										
											2017-02-12 15:06:54 +00:00
										 |  |  |         ], | 
					
						
							| 
									
										
										
										
											2017-02-08 08:29:41 +01:00
										 |  |  |       ) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |     it "optimizes performance by resolving to a fully qualified path before calling Hbc::CaskLoader.load" do | 
					
						
							| 
									
										
										
										
											2017-02-08 08:29:41 +01:00
										 |  |  |       fake_tapped_cask_dir = Pathname.new(Dir.mktmpdir).join("Casks") | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |       absolute_path_to_cask = fake_tapped_cask_dir.join("some-cask.rb") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |       allow(Hbc::CaskLoader).to receive(:load) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |       allow(Hbc).to receive(:all_tapped_cask_dirs) { [fake_tapped_cask_dir] } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-08 08:29:41 +01:00
										 |  |  |       Hbc.caskroom.join("some-cask").mkdir | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |       fake_tapped_cask_dir.mkdir | 
					
						
							|  |  |  |       FileUtils.touch(absolute_path_to_cask) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       Hbc.installed | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-03-13 01:09:36 +01:00
										 |  |  |       expect(Hbc::CaskLoader).to have_received(:load).with(absolute_path_to_cask) | 
					
						
							| 
									
										
										
										
											2016-08-18 22:11:42 +03:00
										 |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |