From 834824754f1837aceefe0518b7fe4023053ecfff Mon Sep 17 00:00:00 2001 From: Markus Reiter <me@reitermark.us> Date: Mon, 27 Feb 2017 18:24:47 +0100 Subject: [PATCH] Convert `formula_validation` test to spec. --- .../Homebrew/test/formula_validation_spec.rb | 94 +++++++++++++++++++ .../Homebrew/test/formula_validation_test.rb | 75 --------------- 2 files changed, 94 insertions(+), 75 deletions(-) create mode 100644 Library/Homebrew/test/formula_validation_spec.rb delete mode 100644 Library/Homebrew/test/formula_validation_test.rb diff --git a/Library/Homebrew/test/formula_validation_spec.rb b/Library/Homebrew/test/formula_validation_spec.rb new file mode 100644 index 0000000000..ff50c86d12 --- /dev/null +++ b/Library/Homebrew/test/formula_validation_spec.rb @@ -0,0 +1,94 @@ +require "formula" + +describe Formula do + describe "::new" do + matcher :fail_with_invalid do |attr| + match do |actual| + expect { + begin + actual.call + rescue => e + expect(e.attr).to eq(attr) + raise e + end + }.to raise_error(FormulaValidationError) + end + + def supports_block_expectations? + true + end + end + + it "cant override the `brew` method" do + expect { + formula do + def brew; end + end + }.to raise_error(RuntimeError, /You cannot override Formula#brew/) + end + + it "validates the `name`" do + expect { + formula "name with spaces" do + url "foo" + version "1.0" + end + }.to fail_with_invalid :name + end + + it "validates the `url`" do + expect { + formula do + url "" + version "1" + end + }.to fail_with_invalid :url + end + + it "validates the `version`" do + expect { + formula do + url "foo" + version "version with spaces" + end + }.to fail_with_invalid :version + + expect { + formula do + url "foo" + version "" + end + }.to fail_with_invalid :version + + expect { + formula do + url "foo" + version nil + end + }.to fail_with_invalid :version + end + + specify "devel-only is valid" do + f = formula do + devel do + url "foo" + version "1.0" + end + end + + expect(f).to be_devel + end + + specify "head-only is valid" do + f = formula do + head "foo" + end + + expect(f).to be_head + end + + it "fails when Formula is empty" do + expect { formula {} }.to raise_error(FormulaSpecificationError) + end + end +end diff --git a/Library/Homebrew/test/formula_validation_test.rb b/Library/Homebrew/test/formula_validation_test.rb deleted file mode 100644 index c40eb67331..0000000000 --- a/Library/Homebrew/test/formula_validation_test.rb +++ /dev/null @@ -1,75 +0,0 @@ -require "testing_env" -require "formula" - -class FormulaValidationTests < Homebrew::TestCase - def assert_invalid(attr, &block) - e = assert_raises(FormulaValidationError, &block) - assert_equal attr, e.attr - end - - def test_cant_override_brew - e = assert_raises(RuntimeError) { formula { def brew; end } } - assert_match(/You cannot override Formula#brew/, e.message) - end - - def test_validates_name - assert_invalid :name do - formula "name with spaces" do - url "foo" - version "1.0" - end - end - end - - def test_validates_url - assert_invalid :url do - formula do - url "" - version "1" - end - end - end - - def test_validates_version - assert_invalid :version do - formula do - url "foo" - version "version with spaces" - end - end - - assert_invalid :version do - formula do - url "foo" - version "" - end - end - - assert_invalid :version do - formula do - url "foo" - version nil - end - end - end - - def test_devel_only_valid - f = formula do - devel do - url "foo" - version "1.0" - end - end - - assert_predicate f, :devel? - end - - def test_head_only_valid - f = formula { head "foo" } - assert_predicate f, :head? - end - - def test_empty_formula_invalid - assert_raises(FormulaSpecificationError) { formula {} } - end -end -- GitLab