brew/Library/Homebrew/test/cmd/--prefix_spec.rb
apainintheneck 56ecd42ebd dev-cmd/tests: skip tests that require core if it's not tapped
There were a few tests which require core to be tapped and fail
if it isn't. This is annoying if someone is trying to contribute
to the project and they're using the JSON API instead of having
the core repo tapped locally.

I'm just skipping these because it's the simplest thing to do.
The tests that failed are mostly rubocop tests so it's fine
if they only run on CI.
2024-05-03 00:32:50 -07:00

37 lines
1.1 KiB
Ruby

# frozen_string_literal: true
require "cmd/--prefix"
require "cmd/shared_examples/args_parse"
RSpec.describe Homebrew::Cmd::Prefix do
it_behaves_like "parseable arguments"
it "prints Homebrew's prefix", :integration_test do
expect { brew_sh "--prefix" }
.to output("#{ENV.fetch("HOMEBREW_PREFIX")}\n").to_stdout
.and not_to_output.to_stderr
.and be_a_success
end
it "prints the prefix for a Formula", :integration_test, :needs_homebrew_core do
expect { brew_sh "--prefix", "wget" }
.to output("#{ENV.fetch("HOMEBREW_PREFIX")}/opt/wget\n").to_stdout
.and not_to_output.to_stderr
.and be_a_success
end
it "errors if the given Formula doesn't exist", :integration_test do
expect { brew "--prefix", "nonexistent" }
.to output(/No available formula/).to_stderr
.and not_to_output.to_stdout
.and be_a_failure
end
it "prints a warning when `--installed` is used and the given Formula is not installed", :integration_test do
expect { brew "--prefix", "--installed", testball }
.to not_to_output.to_stdout
.and output(/testball/).to_stderr
.and be_a_failure
end
end