diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/helpers/admin_public_body_helper_spec.rb | 79 |
1 files changed, 79 insertions, 0 deletions
diff --git a/spec/helpers/admin_public_body_helper_spec.rb b/spec/helpers/admin_public_body_helper_spec.rb new file mode 100644 index 000000000..defb1b359 --- /dev/null +++ b/spec/helpers/admin_public_body_helper_spec.rb @@ -0,0 +1,79 @@ +require File.expand_path(File.dirname(__FILE__) + '/../spec_helper') + +describe AdminPublicBodyHelper do + + include AdminPublicBodyHelper + + describe :public_body_form_object do + + context 'in the default locale' do + + before(:each) do + @locale = I18n.default_locale + @public_body = Factory.create(:public_body) + end + + it 'provides the original object' do + object = public_body_form_object(@public_body, @locale)[:object] + expect(object).to eq(@public_body) + end + + it 'provides the prefix public_body' do + prefix = public_body_form_object(@public_body, @locale)[:prefix] + expect(prefix).to eq('public_body') + end + + end + + context 'in an alternative locale' do + + it 'provides the prefix public_body[translated_versions][]' do + public_body = FactoryGirl.build(:public_body) + locale = :es + prefix = public_body_form_object(public_body, locale)[:prefix] + expect(prefix).to eq('public_body[translated_versions][]') + end + + context 'when the PublicBody is new' do + + it 'builds a new PublicBody::Translation' do + public_body = FactoryGirl.build(:public_body) + locale = :es + + object = public_body_form_object(public_body, locale)[:object] + + expect(object).to be_instance_of(PublicBody::Translation) + expect(object).to be_new_record + end + + end + + context 'when the PublicBody has been persisted' do + + it 'finds an existing PublicBody::Translation for the locale' do + public_body = public_bodies(:geraldine_public_body) + locale = :es + translation = public_body.find_translation_by_locale(locale) + + object = public_body_form_object(public_body, locale)[:object] + + expect(object).to eq(translation) + end + + it 'builds a new PublicBody::Translation if the record does not have one for that locale' do + public_body = FactoryGirl.create(:public_body) + locale = :es + + object = public_body_form_object(public_body, locale)[:object] + + expect(object).to be_instance_of(PublicBody::Translation) + expect(object).to be_new_record + end + + end + + end + + end + +end |