neocities/tests/tag_tests.rb
2022-08-10 14:31:36 -05:00

34 lines
966 B
Ruby

require_relative './environment.rb'
describe Tag do
describe 'creation' do
it 'should force downcase' do
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
Tag.where(name: '').delete
tag = Tag.create_unless_exists ''
_(Tag.where(name: '').count).must_equal 0
end
it 'strips tags' do
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
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