Skip to content
Snippets Groups Projects
Commit 8676960d authored by Markus Reiter's avatar Markus Reiter
Browse files

Convert FormulaText test to spec.

parent 14ae87d5
No related branches found
No related tags found
No related merge requests found
...@@ -4,55 +4,6 @@ require "pathname" ...@@ -4,55 +4,6 @@ require "pathname"
require "formulary" require "formulary"
require "dev-cmd/audit" require "dev-cmd/audit"
class FormulaTextTests < Homebrew::TestCase
def setup
super
@dir = mktmpdir
end
def formula_text(name, body = nil, options = {})
path = Pathname.new "#{@dir}/#{name}.rb"
path.open("w") do |f|
f.write <<-EOS.undent
class #{Formulary.class_s(name)} < Formula
#{body}
end
#{options[:patch]}
EOS
end
FormulaText.new path
end
def test_simple_valid_formula
ft = formula_text "valid", 'url "http://www.example.com/valid-1.0.tar.gz"'
refute ft.data?, "The formula should not have DATA"
refute ft.end?, "The formula should not have __END__"
assert ft.trailing_newline?, "The formula should have a trailing newline"
assert ft =~ /\burl\b/, "The formula should match 'url'"
assert_nil ft.line_number(/desc/), "The formula should not match 'desc'"
assert_equal 2, ft.line_number(/\burl\b/)
assert ft.include?("Valid"), "The formula should include \"Valid\""
end
def test_trailing_newline
ft = formula_text "newline"
assert ft.trailing_newline?, "The formula must have a trailing newline"
end
def test_has_data
ft = formula_text "data", "patch :DATA"
assert ft.data?, "The formula must have DATA"
end
def test_has_end
ft = formula_text "end", "", patch: "__END__\na patch here"
assert ft.end?, "The formula must have __END__"
assert_equal "class End < Formula\n \nend", ft.without_patch
end
end
class FormulaAuditorTests < Homebrew::TestCase class FormulaAuditorTests < Homebrew::TestCase
def setup def setup
super super
......
require "dev-cmd/audit"
require "formulary"
RSpec::Matchers.alias_matcher :have_data, :be_data
RSpec::Matchers.alias_matcher :have_end, :be_end
RSpec::Matchers.alias_matcher :have_trailing_newline, :be_trailing_newline
describe FormulaText do
let(:dir) { @dir = Pathname.new(Dir.mktmpdir) }
after(:each) do
dir.rmtree unless @dir.nil?
end
def formula_text(name, body = nil, options = {})
path = dir/"#{name}.rb"
path.write <<-EOS.undent
class #{Formulary.class_s(name)} < Formula
#{body}
end
#{options[:patch]}
EOS
described_class.new(path)
end
specify "simple valid Formula" do
ft = formula_text "valid", <<-EOS.undent
url "http://www.example.com/valid-1.0.tar.gz"
EOS
expect(ft).not_to have_data
expect(ft).not_to have_end
expect(ft).to have_trailing_newline
expect(ft =~ /\burl\b/).to be_truthy
expect(ft.line_number(/desc/)).to be nil
expect(ft.line_number(/\burl\b/)).to eq(2)
expect(ft).to include("Valid")
end
specify "#trailing_newline?" do
ft = formula_text "newline"
expect(ft).to have_trailing_newline
end
specify "#data?" do
ft = formula_text "data", <<-EOS.undent
patch :DATA
EOS
expect(ft).to have_data
end
specify "#end?" do
ft = formula_text "end", "", patch: "__END__\na patch here"
expect(ft).to have_end
expect(ft.without_patch).to eq("class End < Formula\n \nend")
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment