mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00

- Homebrew Bundle referred to formulae as "brews". But it referred to casks as "casks" and taps as "taps". - Let's use the same terminology everywhere. - (I know that `brew "hello"` is the formula syntax in the Brewfile, so I'm not changing that (though would be up for it, in a backwards compatible manner), just making the code more consistent.)
61 lines
2.1 KiB
Ruby
61 lines
2.1 KiB
Ruby
# 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
|