| 
									
										
										
										
											2025-03-18 17:38:37 +00:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require "bundle" | 
					
						
							| 
									
										
										
										
											2025-03-24 21:55:47 +08:00
										 |  |  | require "bundle/whalebrew_dumper" | 
					
						
							| 
									
										
										
										
											2025-03-18 17:38:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | RSpec.describe Homebrew::Bundle::WhalebrewDumper do | 
					
						
							|  |  |  |   subject(:dumper) { described_class } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   context "when whalebrew is not installed" do | 
					
						
							|  |  |  |     before do | 
					
						
							|  |  |  |       dumper.reset! | 
					
						
							|  |  |  |       allow(Homebrew::Bundle).to receive(:whalebrew_installed?).and_return(false) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "returns empty list" do | 
					
						
							|  |  |  |       expect(dumper.images).to be_empty | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     it "dumps as empty string" do | 
					
						
							|  |  |  |       expect(dumper.dump).to eql("") | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   context "when whalebrew is installed" do | 
					
						
							|  |  |  |     before do | 
					
						
							|  |  |  |       allow(Homebrew::Bundle).to receive(:whalebrew_installed?).and_return(true) | 
					
						
							|  |  |  |       allow(dumper).to receive(:images).and_return(["whalebrew/wget", "whalebrew/dig"]) | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     context "when images are installed" do | 
					
						
							|  |  |  |       let(:expected_whalebrew_dump) do | 
					
						
							|  |  |  |         %Q(whalebrew "whalebrew/wget"\nwhalebrew "whalebrew/dig") | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it "returns correct listing" do | 
					
						
							|  |  |  |         expect(dumper.images).to eq(["whalebrew/wget", "whalebrew/dig"]) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       it "dumps usable output for Brewfile" do | 
					
						
							|  |  |  |         expect(dumper.dump).to eql(expected_whalebrew_dump) | 
					
						
							|  |  |  |       end | 
					
						
							|  |  |  |     end | 
					
						
							|  |  |  |   end | 
					
						
							|  |  |  | end |