Convert String test to spec.

This commit is contained in:
Markus Reiter 2017-02-16 03:15:46 +01:00
parent dfad3f33ca
commit 81d105d9a4
2 changed files with 49 additions and 40 deletions

View File

@ -0,0 +1,49 @@
require "extend/string"
describe String do
describe "#undent" do
it "removes leading whitespace, taking the first line as reference" do
string = <<-EOS.undent
hi
........my friend over
there
EOS
expect(string).to eq("hi\n........my friend over\n there\n")
end
it "removes nothing if the text is not indented" do
string = <<-EOS.undent
hi
I'm not indented
EOS
expect(string).to eq("hi\nI'm not indented\n")
end
it "can be nested" do
nested_string = <<-EOS.undent
goodbye
EOS
string = <<-EOS.undent
hello
#{nested_string}
EOS
expect(string).to eq("hello\ngoodbye\n\n")
end
end
end
describe StringInreplaceExtension do
subject { string.extend(described_class) }
let(:string) { "foobar" }
describe "#sub!" do
it "adds an error to #errors when no replacement was made" do
subject.sub! "not here", "test"
expect(subject.errors).to eq(['expected replacement of "not here" with "test"'])
end
end
end

View File

@ -1,40 +0,0 @@
require "testing_env"
require "extend/string"
class StringTest < Homebrew::TestCase
def test_undent
undented = <<-EOS.undent
hi
....my friend over
there
EOS
assert_equal "hi\n....my friend over\nthere\n", undented
end
def test_undent_not_indented
undented = <<-EOS.undent
hi
I'm not indented
EOS
assert_equal "hi\nI'm not indented\n", undented
end
def test_undent_nested
nest = <<-EOS.undent
goodbye
EOS
undented = <<-EOS.undent
hello
#{nest}
EOS
assert_equal "hello\ngoodbye\n\n", undented
end
def test_inreplace_sub_failure
s = "foobar".extend StringInreplaceExtension
s.sub! "not here", "test"
assert_equal ['expected replacement of "not here" with "test"'], s.errors
end
end