tests: add and fix tests

This commit is contained in:
Rylan Polster 2021-01-08 17:11:20 -05:00
parent 74787ca0ee
commit e9d09c4d8f
4 changed files with 60 additions and 4 deletions

View File

@ -35,9 +35,9 @@ module Homebrew
case args.named.first case args.named.first
when nil, "state" when nil, "state"
if Completions.link_completions? if Completions.link_completions?
puts "Completions are not linked."
else
puts "Completions are linked." puts "Completions are linked."
else
puts "Completions are not linked."
end end
when "link" when "link"
Completions.link! Completions.link!

View File

@ -22,7 +22,7 @@ RSpec/InstanceVariable:
- 'utils/git_spec.rb' - 'utils/git_spec.rb'
- 'version_spec.rb' - 'version_spec.rb'
# Offense count: 76 # Offense count: 81
RSpec/MultipleDescribes: RSpec/MultipleDescribes:
Exclude: Exclude:
- 'ENV_spec.rb' - 'ENV_spec.rb'
@ -37,6 +37,7 @@ RSpec/MultipleDescribes:
- 'cmd/autoremove_spec.rb' - 'cmd/autoremove_spec.rb'
- 'cmd/cleanup_spec.rb' - 'cmd/cleanup_spec.rb'
- 'cmd/commands_spec.rb' - 'cmd/commands_spec.rb'
- 'cmd/completions_spec.rb'
- 'cmd/config_spec.rb' - 'cmd/config_spec.rb'
- 'cmd/deps_spec.rb' - 'cmd/deps_spec.rb'
- 'cmd/desc_spec.rb' - 'cmd/desc_spec.rb'

View File

@ -0,0 +1,28 @@
# typed: false
# frozen_string_literal: true
require "cmd/shared_examples/args_parse"
describe "Homebrew.completions_args" do
it_behaves_like "parseable arguments"
end
describe "brew completions", :integration_test do
it "runs the status subcommand correctly" do
HOMEBREW_REPOSITORY.cd do
system "git", "init"
end
brew "completions", "link"
expect { brew "completions" }
.to output(/Completions are linked/).to_stdout
.and not_to_output.to_stderr
.and be_a_success
brew "completions", "unlink"
expect { brew "completions" }
.to output(/Completions are not linked/).to_stdout
.and not_to_output.to_stderr
.and be_a_success
end
end

View File

@ -84,6 +84,13 @@ describe Tap do
end end
end end
def setup_completion(link:)
HOMEBREW_REPOSITORY.cd do
system "git", "init"
system "git", "config", "--replace-all", "homebrew.linkcompletions", link
end
end
specify "::fetch" do specify "::fetch" do
expect(described_class.fetch("Homebrew", "core")).to be_kind_of(CoreTap) expect(described_class.fetch("Homebrew", "core")).to be_kind_of(CoreTap)
expect(described_class.fetch("Homebrew", "homebrew")).to be_kind_of(CoreTap) expect(described_class.fetch("Homebrew", "homebrew")).to be_kind_of(CoreTap)
@ -285,6 +292,7 @@ describe Tap do
specify "#install and #uninstall" do specify "#install and #uninstall" do
setup_tap_files setup_tap_files
setup_git_repo setup_git_repo
setup_completion link: "yes"
tap = described_class.new("Homebrew", "bar") tap = described_class.new("Homebrew", "bar")
@ -308,9 +316,10 @@ describe Tap do
(HOMEBREW_PREFIX/"share").rmtree if (HOMEBREW_PREFIX/"share").exist? (HOMEBREW_PREFIX/"share").rmtree if (HOMEBREW_PREFIX/"share").exist?
end end
specify "#link_completions_and_manpages" do specify "#link_completions_and_manpages when completions are enabled" do
setup_tap_files setup_tap_files
setup_git_repo setup_git_repo
setup_completion link: "yes"
tap = described_class.new("Homebrew", "baz") tap = described_class.new("Homebrew", "baz")
tap.install clone_target: subject.path/".git" tap.install clone_target: subject.path/".git"
(HOMEBREW_PREFIX/"share/man/man1/brew-tap-cmd.1").delete (HOMEBREW_PREFIX/"share/man/man1/brew-tap-cmd.1").delete
@ -328,6 +337,24 @@ describe Tap do
(HOMEBREW_PREFIX/"share").rmtree if (HOMEBREW_PREFIX/"share").exist? (HOMEBREW_PREFIX/"share").rmtree if (HOMEBREW_PREFIX/"share").exist?
end end
specify "#link_completions_and_manpages when completions are disabled" do
setup_tap_files
setup_git_repo
setup_completion link: "no"
tap = described_class.new("Homebrew", "baz")
tap.install clone_target: subject.path/".git"
(HOMEBREW_PREFIX/"share/man/man1/brew-tap-cmd.1").delete
tap.link_completions_and_manpages
expect(HOMEBREW_PREFIX/"share/man/man1/brew-tap-cmd.1").to be_a_file
expect(HOMEBREW_PREFIX/"etc/bash_completion.d/brew-tap-cmd").not_to be_a_file
expect(HOMEBREW_PREFIX/"share/zsh/site-functions/_brew-tap-cmd").not_to be_a_file
expect(HOMEBREW_PREFIX/"share/fish/vendor_completions.d/brew-tap-cmd.fish").not_to be_a_file
tap.uninstall
ensure
(HOMEBREW_PREFIX/"etc").rmtree if (HOMEBREW_PREFIX/"etc").exist?
(HOMEBREW_PREFIX/"share").rmtree if (HOMEBREW_PREFIX/"share").exist?
end
specify "#config" do specify "#config" do
setup_git_repo setup_git_repo