51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| 
 | |
| require "bundle"
 | |
| require "bundle/commands/add"
 | |
| require "cask/cask_loader"
 | |
| 
 | |
| RSpec.describe Homebrew::Bundle::Commands::Add do
 | |
|   subject(:add) do
 | |
|     described_class.run(*args, type:, global:, file:)
 | |
|   end
 | |
| 
 | |
|   before { FileUtils.touch file }
 | |
|   after { FileUtils.rm_f file }
 | |
| 
 | |
|   let(:global) { false }
 | |
| 
 | |
|   context "when called with a valid formula" do
 | |
|     let(:args) { ["hello"] }
 | |
|     let(:type) { :brew }
 | |
|     let(:file) { "/tmp/some_random_brewfile#{Random.rand(2 ** 16)}" }
 | |
| 
 | |
|     before do
 | |
|       stub_formula_loader formula("hello") { url "hello-1.0" }
 | |
|     end
 | |
| 
 | |
|     it "adds entries to the given Brewfile" do
 | |
|       expect { add }.not_to raise_error
 | |
|       expect(File.read(file)).to include("#{type} \"#{args.first}\"")
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   context "when called with a valid cask" do
 | |
|     let(:args) { ["alacritty"] }
 | |
|     let(:type) { :cask }
 | |
|     let(:file) { "/tmp/some_random_brewfile#{Random.rand(2 ** 16)}" }
 | |
| 
 | |
|     before do
 | |
|       stub_cask_loader Cask::CaskLoader::FromContentLoader.new(+<<~RUBY).load(config: nil)
 | |
|         cask "alacritty" do
 | |
|           version "1.0"
 | |
|         end
 | |
|       RUBY
 | |
|     end
 | |
| 
 | |
|     it "adds entries to the given Brewfile" do
 | |
|       expect { add }.not_to raise_error
 | |
|       expect(File.read(file)).to include("#{type} \"#{args.first}\"")
 | |
|     end
 | |
|   end
 | |
| end
 | 
