better tag tests

This commit is contained in:
Kyle Drake 2014-09-16 00:43:47 -07:00
parent f5814226a6
commit 624d77fcfa

View file

@ -3,11 +3,12 @@ require_relative './environment.rb'
describe Tag do
describe 'creation' do
it 'should force downcase' do
tag_name = SecureRandom.hex(10).downcase
Tag.create_unless_exists tag_name
Tag[name: tag_name].wont_be_nil
Tag.create_unless_exists tag_name.upcase
Tag.filter(name: tag_name).count.must_equal 1
Tag.where(name: 'derp').delete
Tag.create_unless_exists 'derp'
Tag[name: 'derp'].wont_be_nil
Tag.create_unless_exists 'DERP'
Tag.filter(name: 'DERP').count.must_equal 0
Tag.filter(name: 'derp').count.must_equal 1
end
it 'prohibits junk tags' do
@ -17,16 +18,18 @@ describe Tag do
end
it 'strips tags' do
name = SecureRandom.hex(4)+' '
Tag.create_unless_exists name
Tag[name: name.strip].wont_be_nil
badname = ' derp '
Tag.where(name: 'derp').delete
Tag.create_unless_exists badname
Tag[name: badname].must_be_nil
Tag[name: badname.strip].wont_be_nil
end
it 'does not duplicate' do
name = SecureRandom.hex(4).upcase
2.times { Tag.create_unless_exists name }
Tag.where(name: name.downcase).count.must_equal 1
2.times { Tag.create_unless_exists 'DERP' }
Tag.where(name: 'DERP').count.must_equal 0
Tag.where(name: 'derp').count.must_equal 1
end
end
end