From f96240eec770beb991f29799e73955e880617167 Mon Sep 17 00:00:00 2001 From: William Ma Date: Wed, 29 Jul 2020 12:20:23 -0400 Subject: [PATCH] deps: Add tests for CaskDependent --- Library/Homebrew/cask_dependent.rb | 2 + Library/Homebrew/test/cask_dependent_spec.rb | 63 ++++++++++++++++++++ 2 files changed, 65 insertions(+) create mode 100644 Library/Homebrew/test/cask_dependent_spec.rb diff --git a/Library/Homebrew/cask_dependent.rb b/Library/Homebrew/cask_dependent.rb index 15b553aa23..96137a1a17 100644 --- a/Library/Homebrew/cask_dependent.rb +++ b/Library/Homebrew/cask_dependent.rb @@ -1,3 +1,5 @@ +# frozen_string_literal: true + # An adapter for casks to provide dependency information in a formula-like interface class CaskDependent def initialize(cask) diff --git a/Library/Homebrew/test/cask_dependent_spec.rb b/Library/Homebrew/test/cask_dependent_spec.rb new file mode 100644 index 0000000000..313a67a61b --- /dev/null +++ b/Library/Homebrew/test/cask_dependent_spec.rb @@ -0,0 +1,63 @@ +# frozen_string_literal: true + +require "cask/cask_loader" +require "cask_dependent" + +describe CaskDependent, :needs_macos do + subject(:dependent) { described_class.new test_cask } + + let :test_cask do + Cask::CaskLoader.load(+<<-RUBY) + cask "testing" do + depends_on formula: "baz" + depends_on cask: "foo-cask" + depends_on macos: ">= :mojave" + depends_on x11: true + end + RUBY + end + + describe "#deps" do + it "is the formula dependencies of the cask" do + expect(dependent.deps.map(&:name)) + .to eq %w[baz] + end + end + + describe "#requirements" do + it "is the requirements of the cask" do + expect(dependent.requirements.map(&:name)) + .to eq %w[foo-cask macos x11] + end + end + + describe "#recursive_dependencies", :integration_test do + it "is all the dependencies of the cask" do + setup_test_formula "foo" + setup_test_formula "bar" + setup_test_formula "baz", <<-RUBY + url "https://brew.sh/baz-1.0" + depends_on "bar" + depends_on :osxfuse + RUBY + + expect(dependent.recursive_dependencies.map(&:name)) + .to eq(%w[foo bar baz]) + end + end + + describe "#recursive_requirements", :integration_test do + it "is all the dependencies of the cask" do + setup_test_formula "foo" + setup_test_formula "bar" + setup_test_formula "baz", <<-RUBY + url "https://brew.sh/baz-1.0" + depends_on "bar" + depends_on :osxfuse + RUBY + + expect(dependent.recursive_requirements.map(&:name)) + .to eq(%w[foo-cask macos x11 osxfuse]) + end + end +end