diff options
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/admin_public_body_controller_spec.rb | 15 | ||||
-rw-r--r-- | spec/helpers/admin_public_body_helper_spec.rb | 79 | ||||
-rw-r--r-- | spec/integration/admin_public_body_edit_spec.rb | 19 |
3 files changed, 32 insertions, 81 deletions
diff --git a/spec/controllers/admin_public_body_controller_spec.rb b/spec/controllers/admin_public_body_controller_spec.rb index 5b8ed6c55..f176150da 100644 --- a/spec/controllers/admin_public_body_controller_spec.rb +++ b/spec/controllers/admin_public_body_controller_spec.rb @@ -44,6 +44,15 @@ describe AdminPublicBodyController, 'when showing the form for a new public body assigns[:public_body].should be_a(PublicBody) end + it "builds new translations for all locales" do + get :new + + translations = assigns[:public_body].translations.map{ |t| t.locale.to_s }.sort + available = I18n.available_locales.map{ |l| l.to_s }.sort + + expect(translations).to eq(available) + end + context 'when passed a change request id as a param' do render_views @@ -161,6 +170,12 @@ describe AdminPublicBodyController, "when editing a public body" do response.should render_template('edit') end + it "builds new translations if the body does not already have a translation in the specified locale" do + public_body = FactoryGirl.create(:public_body) + get :edit, :id => public_body.id + expect(assigns[:public_body].translations.map(&:locale)).to include(:fr) + end + context 'when passed a change request id as a param' do render_views diff --git a/spec/helpers/admin_public_body_helper_spec.rb b/spec/helpers/admin_public_body_helper_spec.rb deleted file mode 100644 index c135ef348..000000000 --- a/spec/helpers/admin_public_body_helper_spec.rb +++ /dev/null @@ -1,79 +0,0 @@ -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 :translations' do - public_body = FactoryGirl.build(:public_body) - locale = :es - prefix = public_body_form_object(public_body, locale)[:prefix] - expect(prefix).to eq(:translations) - 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 diff --git a/spec/integration/admin_public_body_edit_spec.rb b/spec/integration/admin_public_body_edit_spec.rb index d75ded6fe..613793dd4 100644 --- a/spec/integration/admin_public_body_edit_spec.rb +++ b/spec/integration/admin_public_body_edit_spec.rb @@ -17,6 +17,15 @@ describe 'Editing a Public Body' do @body = PublicBody.find_by_name('New Quango') end + it 'can edit the default locale' do + @admin.visit admin_body_edit_path(@body) + @admin.fill_in 'public_body_name__en', :with => 'New Quango EN' + @admin.click_button 'Save' + + pb = @body.reload + expect(pb.name).to eq('New Quango EN') + end + it 'can add a translation for a single locale' do expect(@body.find_translation_by_locale('fr')).to be_nil @@ -24,13 +33,17 @@ describe 'Editing a Public Body' do @admin.fill_in 'public_body_translations_attributes_fr_name__fr', :with => 'New Quango FR' @admin.click_button 'Save' - pb = PublicBody.find_by_name('New Quango') + pb = @body.reload I18n.with_locale(:fr) do expect(pb.name).to eq('New Quango FR') end end it 'can add a translation for multiple locales', :focus => true do + @admin.visit admin_body_edit_path(@body) + @admin.fill_in 'public_body_name__en', :with => 'New Quango EN' + @admin.click_button 'Save' + # Add FR translation expect(@body.find_translation_by_locale('fr')).to be_nil @admin.visit admin_body_edit_path(@body) @@ -43,7 +56,9 @@ describe 'Editing a Public Body' do @admin.fill_in 'public_body_translations_attributes_es_name__es', :with => 'New Quango ES' @admin.click_button 'Save' - pb = PublicBody.find_by_name('New Quango') + pb = @body.reload + + expect(pb.name).to eq('New Quango EN') I18n.with_locale(:fr) do expect(pb.name).to eq('New Quango FR') |