diff options
author | Alessandro Desantis <desa.alessandro@gmail.com> | 2020-11-16 17:19:45 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-11-16 17:19:45 +0100 |
commit | b4721fc54b700130eb8e6b9c5042875cd8582bd2 (patch) | |
tree | 84e43de0369b4db9f8d2d19ab23e0fbedbaa8bb0 | |
parent | 6180dacde705b8cfb30229c0653df80202c58159 (diff) | |
parent | 6267bd99adc0ed226fb62cf5c71dcec6205d0604 (diff) |
Merge pull request #166 from solidusio-contrib/aldesantis/fix-update-form
Fix `ActiveRecord::ReadOnlyRecord` when updating subscriptions
-rw-r--r-- | .rubocop.yml | 1 | ||||
-rw-r--r-- | app/controllers/spree/admin/subscriptions_controller.rb | 4 | ||||
-rw-r--r-- | spec/features/admin/subscriptions_spec.rb | 18 | ||||
-rw-r--r-- | spec/features/admin_link_spec.rb | 11 |
4 files changed, 21 insertions, 13 deletions
diff --git a/.rubocop.yml b/.rubocop.yml index 48c6a23..fcd4bc4 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -6,3 +6,4 @@ require: RSpec/DescribeClass: Exclude: - spec/requests/**/* + - spec/features/**/* diff --git a/app/controllers/spree/admin/subscriptions_controller.rb b/app/controllers/spree/admin/subscriptions_controller.rb index 7db4c77..2b6069f 100644 --- a/app/controllers/spree/admin/subscriptions_controller.rb +++ b/app/controllers/spree/admin/subscriptions_controller.rb @@ -88,8 +88,8 @@ module Spree end def prepare_form - @subscription.build_shipping_address unless @subscription.shipping_address - @subscription.build_billing_address unless @subscription.billing_address + @subscription.build_shipping_address(@subscription.shipping_address&.value_attributes) + @subscription.build_billing_address(@subscription.billing_address&.value_attributes) @subscription.line_items.build end diff --git a/spec/features/admin/subscriptions_spec.rb b/spec/features/admin/subscriptions_spec.rb new file mode 100644 index 0000000..53228ec --- /dev/null +++ b/spec/features/admin/subscriptions_spec.rb @@ -0,0 +1,18 @@ +RSpec.describe 'Subscriptions admin' do + stub_authorization! + + it 'Updating a subscription' do + subscription = create(:subscription, :with_shipping_address, :with_billing_address) + + visit spree.admin_path + click_link 'Subscriptions' + find('.fa-edit').click + fill_in 'subscription[shipping_address_attributes][zipcode]', with: '33166' + fill_in 'subscription[billing_address_attributes][zipcode]', with: '33167' + click_button 'Update' + subscription.reload + + expect(subscription.shipping_address.zipcode).to eq('33166') + expect(subscription.billing_address.zipcode).to eq('33167') + end +end diff --git a/spec/features/admin_link_spec.rb b/spec/features/admin_link_spec.rb deleted file mode 100644 index 53b30bc..0000000 --- a/spec/features/admin_link_spec.rb +++ /dev/null @@ -1,11 +0,0 @@ -require 'spec_helper' - -RSpec.describe 'Subscriptions admin link', type: :feature do - stub_authorization! - - it 'Navigating to the subscriptions backend' do - visit '/admin' - click_on "Subscriptions" - expect(page).to have_current_path %r{admin/subscriptions} - end -end |