refactor test using let and subject instead of before

This commit is contained in:
zaziemo 2015-07-13 12:56:28 +02:00 committed by Dennis Schubert
parent 7f3737b13f
commit d86a768590

View file

@ -1,23 +1,25 @@
require 'spec_helper'
describe ActsAsTaggableOn::Tag, :type => :model do
subject(:tag) { ActsAsTaggableOn::Tag }
describe '.autocomplete' do
before do
@tag = ActsAsTaggableOn::Tag.create(:name => "cats")
end
let!(:tag_cats) { tag.create(:name => "cats") }
it 'downcases the tag name' do
expect(ActsAsTaggableOn::Tag.autocomplete("CATS")).to eq([@tag])
expect(tag.autocomplete("CATS")).to eq([tag_cats])
end
it 'does an end where on tags' do
expect(ActsAsTaggableOn::Tag.autocomplete("CAT")).to eq([@tag])
expect(tag.autocomplete("CAT")).to eq([tag_cats])
end
end
describe ".normalize" do
it "removes leading hash symbols" do
expect(ActsAsTaggableOn::Tag.normalize("#mytag")).to eq("mytag")
expect(tag.normalize("#mytag")).to eq("mytag")
end
it "removes punctuation and whitespace" do
@ -33,13 +35,13 @@ describe ActsAsTaggableOn::Tag, :type => :model do
'hash#inside' => 'hashinside',
'f!u@n#k$y%-<c>^h&a*r(a)c{t}e[r]s' => 'funky-characters'
}.each do |invalid, normalized|
expect(ActsAsTaggableOn::Tag.normalize(invalid)).to eq(normalized)
expect(tag.normalize(invalid)).to eq(normalized)
end
end
it 'allows for love' do
expect(ActsAsTaggableOn::Tag.normalize("<3")).to eq("<3")
expect(ActsAsTaggableOn::Tag.normalize("#<3")).to eq("<3")
expect(tag.normalize("<3")).to eq("<3")
expect(tag.normalize("#<3")).to eq("<3")
end
end
end