2019-04-19 15:38:03 +09:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
2024-03-03 15:32:30 -08:00
|
|
|
require "cmd/list"
|
2024-03-08 13:35:56 -08:00
|
|
|
require "cmd/shared_examples/args_parse"
|
2024-04-22 11:58:07 +08:00
|
|
|
require "tab"
|
2019-03-28 08:35:36 +00:00
|
|
|
|
2024-03-03 15:32:30 -08:00
|
|
|
RSpec.describe Homebrew::Cmd::List do
|
2024-04-22 11:58:07 +08:00
|
|
|
def setup_installation(formula_name, installed_on_request:)
|
|
|
|
|
setup_test_formula(formula_name)
|
|
|
|
|
|
|
|
|
|
keg_dir = HOMEBREW_CELLAR/formula_name/"1.0"
|
|
|
|
|
keg_dir.mkpath
|
|
|
|
|
|
|
|
|
|
tab = Tab.new(
|
|
|
|
|
"installed_on_request" => installed_on_request,
|
|
|
|
|
"tabfile" => keg_dir/Tab::FILENAME,
|
|
|
|
|
)
|
|
|
|
|
tab.write
|
|
|
|
|
|
|
|
|
|
keg_dir
|
|
|
|
|
end
|
|
|
|
|
|
2017-02-23 06:07:07 +01:00
|
|
|
let(:formulae) { %w[bar foo qux] }
|
|
|
|
|
|
2024-03-08 13:35:56 -08:00
|
|
|
it_behaves_like "parseable arguments"
|
|
|
|
|
|
2021-02-01 16:14:25 -05:00
|
|
|
it "prints all installed Formulae", :integration_test do
|
2017-02-23 06:07:07 +01:00
|
|
|
formulae.each do |f|
|
|
|
|
|
(HOMEBREW_CELLAR/f/"1.0/somedir").mkpath
|
|
|
|
|
end
|
|
|
|
|
|
2020-10-05 00:49:53 +06:00
|
|
|
expect { brew "list", "--formula" }
|
2017-02-23 06:07:07 +01:00
|
|
|
.to output("#{formulae.join("\n")}\n").to_stdout
|
|
|
|
|
.and not_to_output.to_stderr
|
|
|
|
|
.and be_a_success
|
|
|
|
|
end
|
2024-04-22 11:58:07 +08:00
|
|
|
|
|
|
|
|
it "lists the formulae installed on request or automatically",
|
|
|
|
|
:integration_test do
|
|
|
|
|
setup_installation "foo", installed_on_request: true
|
|
|
|
|
setup_installation "bar", installed_on_request: false
|
|
|
|
|
|
|
|
|
|
expect { brew "list", "--manual" }
|
|
|
|
|
.to be_a_success
|
|
|
|
|
.and output("foo\n").to_stdout
|
|
|
|
|
.and not_to_output.to_stderr
|
|
|
|
|
|
|
|
|
|
expect { brew "list", "--auto" }
|
|
|
|
|
.to be_a_success
|
|
|
|
|
.and output("bar\n").to_stdout
|
|
|
|
|
.and not_to_output.to_stderr
|
|
|
|
|
|
|
|
|
|
expect { brew "list", "--manual", "--auto" }
|
|
|
|
|
.to be_a_success
|
|
|
|
|
.and output("bar: auto\nfoo: manual\n").to_stdout
|
|
|
|
|
.and not_to_output.to_stderr
|
|
|
|
|
end
|
2017-02-23 06:07:07 +01:00
|
|
|
end
|