diff --git a/Library/Homebrew/cask/audit.rb b/Library/Homebrew/cask/audit.rb index 4edce3cc5a5a9877292a4e11ef04fef12ec2bbea..b605908b793aa222f395ce7f564ad58e30e238b0 100644 --- a/Library/Homebrew/cask/audit.rb +++ b/Library/Homebrew/cask/audit.rb @@ -16,7 +16,7 @@ module Cask attr_reader :cask, :download - attr_predicate :appcast?, :new_cask?, :strict?, :online? + attr_predicate :appcast?, :new_cask?, :strict?, :online?, :token_conflicts? def initialize(cask, appcast: nil, download: nil, quarantine: nil, token_conflicts: nil, online: nil, strict: nil, @@ -355,7 +355,7 @@ module Cask end def check_token_conflicts - return unless @token_conflicts + return unless token_conflicts? return unless core_formula_names.include?(cask.token) add_warning "possible duplicate, cask token conflicts with Homebrew core formula: #{core_formula_url}" diff --git a/Library/Homebrew/test/cask/audit_spec.rb b/Library/Homebrew/test/cask/audit_spec.rb index 803865054fbe85b55d3c9f6feeb5ab99193645a5..db741fd133b9c3612ca1789e88ff44193be3a47e 100644 --- a/Library/Homebrew/test/cask/audit_spec.rb +++ b/Library/Homebrew/test/cask/audit_spec.rb @@ -30,17 +30,52 @@ describe Cask::Audit, :cask do end let(:cask) { instance_double(Cask::Cask) } - let(:download) { false } - let(:token_conflicts) { false } - let(:strict) { false } - let(:new_cask) { false } + let(:new_cask) { nil } + let(:online) { nil } + let(:strict) { nil } + let(:token_conflicts) { nil } let(:audit) { - described_class.new(cask, download: download, - token_conflicts: token_conflicts, + described_class.new(cask, online: online, + strict: strict, - new_cask: new_cask) + new_cask: new_cask, + token_conflicts: token_conflicts) } + describe "#new" do + context "when `new_cask` is specified" do + let(:new_cask) { true } + + it "implies `online`" do + expect(audit).to be_online + end + + it "implies `strict`" do + expect(audit).to be_strict + end + end + + context "when `online` is specified" do + let(:online) { true } + + it "implies `appcast`" do + expect(audit.appcast?).to be true + end + + it "implies `download`" do + expect(audit.download).to be_truthy + end + end + + context "when `strict` is specified" do + let(:strict) { true } + + it "implies `token_conflicts`" do + expect(audit.token_conflicts?).to be true + end + end + end + describe "#result" do subject { audit.result }