brew/Library/Homebrew/test/bundle/dumper_spec.rb

61 lines
2.1 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
require "bundle"
require "bundle/dumper"
require "bundle/formula_dumper"
require "bundle/tap_dumper"
require "bundle/cask_dumper"
require "bundle/mac_app_store_dumper"
require "bundle/whalebrew_dumper"
require "bundle/vscode_extension_dumper"
require "bundle/brew_services"
require "cask"
RSpec.describe Homebrew::Bundle::Dumper do
subject(:dumper) { described_class }
before do
ENV["HOMEBREW_BUNDLE_FILE"] = ""
allow(Homebrew::Bundle).to \
receive_messages(
cask_installed?: true, mas_installed?: false, whalebrew_installed?: false,
vscode_installed?: false
)
Homebrew::Bundle::FormulaDumper.reset!
Homebrew::Bundle::TapDumper.reset!
Homebrew::Bundle::CaskDumper.reset!
Homebrew::Bundle::MacAppStoreDumper.reset!
Homebrew::Bundle::WhalebrewDumper.reset!
Homebrew::Bundle::VscodeExtensionDumper.reset!
Homebrew::Bundle::BrewServices.reset!
chrome = instance_double(Cask::Cask,
full_name: "google-chrome",
to_s: "google-chrome",
config: nil)
java = instance_double(Cask::Cask,
full_name: "java",
to_s: "java",
config: nil)
iterm2beta = instance_double(Cask::Cask,
full_name: "homebrew/cask-versions/iterm2-beta",
to_s: "iterm2-beta",
config: nil)
allow(Cask::Caskroom).to receive(:casks).and_return([chrome, java, iterm2beta])
allow(Tap).to receive(:select).and_return([])
end
it "generates output" do
expect(dumper.build_brewfile(
describe: false, no_restart: false, formulae: true, taps: true, casks: true, mas: true,
whalebrew: true, vscode: true
)).to eql("cask \"google-chrome\"\ncask \"java\"\ncask \"iterm2-beta\"\n")
end
it "determines the brewfile correctly" do
expect(dumper.brewfile_path).to eql(Pathname.new(Dir.pwd).join("Brewfile"))
end
end