formality_level_spec.rb revision e4f36cc6b6d3d4c1bcc5de4a9d0fbfbfcb9ee922
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagherrequire 'spec_helper'
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher
ee359fe1384507fed6c2274e7bfe81d288de4542Stephen Gallagherdescribe FormalityLevel do
33396dc46ea52c18f47db1b5d590880806521005Sumit Bose context 'Migrations' do
ee359fe1384507fed6c2274e7bfe81d288de4542Stephen Gallagher %w( name description ).each do |column|
33396dc46ea52c18f47db1b5d590880806521005Sumit Bose it { should have_db_column(column).of_type(:text) }
703dc1eb5b050b24235a6640f271d34ea008cf98Jan Engelhardt end
703dc1eb5b050b24235a6640f271d34ea008cf98Jan Engelhardt
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher it { should have_db_index(:name).unique(true) }
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose end
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose context 'Validations' do
324fb26ba803a999bedc29e93c46c84f27abf5b7Sumit Bose context 'when no name is taken' do
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher it { should allow_value('foo').for(:name) }
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher end
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher
e65df5b966b27e13283c65f59f99ac44781e0333Simo Sorce context "when 'foo' is already taken" do
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher before do
002f84aea86371aa079b867c0ec39396b97109d3Lukas Slebodnik FormalityLevel.create!(name: 'foo')
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher end
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher it { should_not allow_value('foo').for(:name) }
87d3b47abba6a40fcf809c85a2b138bc1013d9c5Jakub Hrozek end
87d3b47abba6a40fcf809c85a2b138bc1013d9c5Jakub Hrozek
deeadf40db3a1eec64cf030e54afc4cb8612a8d5Lukas Slebodnik context 'when FormalityLevel without name is to be saved' do
ccf340e56364851f2e5b75e52d3d63701b662954Lukas Slebodnik it 'raise error' do
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher expect { FormalityLevel.create! }.
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher to raise_error(ActiveRecord::RecordInvalid)
551aa6c36797ed720487f5974dcadabf19e6ff9fStephen Gallagher end
84ae5edab16ad6be5e3be956cb6fa031c1428eb5Stephen Gallagher end
cc98edd9479d4622634a1275c98058916c14059aStephen Gallagher end
ee359fe1384507fed6c2274e7bfe81d288de4542Stephen Gallagherend
cc98edd9479d4622634a1275c98058916c14059aStephen Gallagher