From 40009784522604b577b88bce633fdc5eb4848598 Mon Sep 17 00:00:00 2001 From: Gerhard Schlager Date: Wed, 6 Mar 2019 16:49:40 +0100 Subject: [PATCH] FIX: Failed to save email template with pluralized subject --- .../admin/email_templates_controller.rb | 7 +++++-- .../admin/email_templates_controller_spec.rb | 15 +++++++++++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/app/controllers/admin/email_templates_controller.rb b/app/controllers/admin/email_templates_controller.rb index f36fa25a16e..aa9eef412f7 100644 --- a/app/controllers/admin/email_templates_controller.rb +++ b/app/controllers/admin/email_templates_controller.rb @@ -113,12 +113,15 @@ class Admin::EmailTemplatesController < Admin::AdminController def update_key(key, value) old_value = I18n.t(key) - translation_override = TranslationOverride.upsert!(I18n.locale, key, value) + + unless old_value.is_a?(Hash) + translation_override = TranslationOverride.upsert!(I18n.locale, key, value) + end { key: key, old_value: old_value, - error_messages: translation_override.errors.full_messages + error_messages: translation_override&.errors&.full_messages } end diff --git a/spec/requests/admin/email_templates_controller_spec.rb b/spec/requests/admin/email_templates_controller_spec.rb index 150112d3541..b0d3a0a0550 100644 --- a/spec/requests/admin/email_templates_controller_spec.rb +++ b/spec/requests/admin/email_templates_controller_spec.rb @@ -214,6 +214,21 @@ RSpec.describe Admin::EmailTemplatesController do end end + context "when subject has plural keys" do + it "doesn't update the subject" do + old_subject = I18n.t('system_messages.pending_users_reminder.subject_template') + expect(old_subject).to be_a(Hash) + + put '/admin/customize/email_templates/system_messages.pending_users_reminder', params: { + email_template: { subject: '', body: 'Lorem ipsum' } + }, headers: headers + + expect(response.status).to eq(200) + + expect(I18n.t('system_messages.pending_users_reminder.subject_template')).to eq(old_subject) + expect(I18n.t('system_messages.pending_users_reminder.text_body_template')).to eq('Lorem ipsum') + end + end end end