2025-03-18 17:38:37 +00:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
require "bundle"
|
2025-03-24 21:55:47 +08:00
|
|
|
require "bundle/skipper"
|
|
|
|
require "bundle/tap_dumper"
|
2025-03-18 17:38:37 +00:00
|
|
|
|
|
|
|
RSpec.describe Homebrew::Bundle::TapDumper do
|
|
|
|
subject(:dumper) { described_class }
|
|
|
|
|
|
|
|
context "when there is no tap" do
|
|
|
|
before do
|
|
|
|
described_class.reset!
|
|
|
|
allow(Tap).to receive(:select).and_return []
|
|
|
|
end
|
|
|
|
|
|
|
|
it "returns empty list" do
|
|
|
|
expect(dumper.tap_names).to be_empty
|
|
|
|
end
|
|
|
|
|
|
|
|
it "dumps as empty string" do
|
|
|
|
expect(dumper.dump).to eql("")
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
context "with taps" do
|
|
|
|
before do
|
|
|
|
described_class.reset!
|
|
|
|
|
|
|
|
bar = instance_double(Tap, name: "bitbucket/bar", custom_remote?: true,
|
|
|
|
remote: "https://bitbucket.org/bitbucket/bar.git")
|
|
|
|
baz = instance_double(Tap, name: "homebrew/baz", custom_remote?: false)
|
|
|
|
foo = instance_double(Tap, name: "homebrew/foo", custom_remote?: false)
|
|
|
|
|
|
|
|
ENV["HOMEBREW_GITHUB_API_TOKEN_BEFORE"] = ENV.fetch("HOMEBREW_GITHUB_API_TOKEN", nil)
|
|
|
|
ENV["HOMEBREW_GITHUB_API_TOKEN"] = "some-token"
|
|
|
|
private_tap = instance_double(Tap, name: "privatebrew/private", custom_remote?: true,
|
|
|
|
remote: "https://#{ENV.fetch("HOMEBREW_GITHUB_API_TOKEN")}@github.com/privatebrew/homebrew-private")
|
|
|
|
|
|
|
|
allow(Tap).to receive(:select).and_return [bar, baz, foo, private_tap]
|
|
|
|
end
|
|
|
|
|
|
|
|
after do
|
|
|
|
ENV["HOMEBREW_GITHUB_API_TOKEN"] = ENV.fetch("HOMEBREW_GITHUB_API_TOKEN_BEFORE", nil)
|
|
|
|
ENV.delete("HOMEBREW_GITHUB_API_TOKEN_BEFORE")
|
|
|
|
end
|
|
|
|
|
|
|
|
it "returns list of information" do
|
|
|
|
expect(dumper.tap_names).not_to be_empty
|
|
|
|
end
|
|
|
|
|
|
|
|
it "dumps output" do
|
|
|
|
expected_output = <<~EOS
|
|
|
|
tap "bitbucket/bar", "https://bitbucket.org/bitbucket/bar.git"
|
|
|
|
tap "homebrew/baz"
|
|
|
|
tap "homebrew/foo"
|
|
|
|
tap "privatebrew/private", "https://\#{ENV.fetch("HOMEBREW_GITHUB_API_TOKEN")}@github.com/privatebrew/homebrew-private"
|
|
|
|
EOS
|
|
|
|
expect(dumper.dump).to eql(expected_output.chomp)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|