34 lines
1.1 KiB
Ruby
34 lines
1.1 KiB
Ruby
![]() |
# frozen_string_literal: true
|
||
|
|
||
|
require "cmd/tab"
|
||
|
require "cmd/shared_examples/args_parse"
|
||
|
require "tab"
|
||
|
|
||
|
RSpec.describe Homebrew::Cmd::TabCmd do
|
||
|
def installed_on_request?(formula)
|
||
|
# `brew` subprocesses can change the tab, invalidating the cached values.
|
||
|
Tab.clear_cache
|
||
|
Tab.for_formula(formula).installed_on_request
|
||
|
end
|
||
|
|
||
|
it_behaves_like "parseable arguments"
|
||
|
|
||
|
it "marks or unmarks a formula as installed on request", :integration_test do
|
||
|
setup_test_formula "foo",
|
||
|
tab_attributes: { "installed_on_request" => false }
|
||
|
foo = Formula["foo"]
|
||
|
|
||
|
expect { brew "tab", "--installed-on-request", "foo" }
|
||
|
.to be_a_success
|
||
|
.and output(/foo is now marked as installed on request/).to_stdout
|
||
|
.and not_to_output.to_stderr
|
||
|
expect(installed_on_request?(foo)).to be true
|
||
|
|
||
|
expect { brew "tab", "--no-installed-on-request", "foo" }
|
||
|
.to be_a_success
|
||
|
.and output(/foo is now marked as not installed on request/).to_stdout
|
||
|
.and not_to_output.to_stderr
|
||
|
expect(installed_on_request?(foo)).to be false
|
||
|
end
|
||
|
end
|