aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/admin_public_body_controller_spec.rb15
-rw-r--r--spec/helpers/admin_public_body_helper_spec.rb79
-rw-r--r--spec/integration/admin_public_body_edit_spec.rb19
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')