From 007dbc858fa146b1a2b981d61ab18bf925468b8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 May 2021 19:23:15 +0000 Subject: [PATCH 1/2] Bump paper_trail from 10.3.1 to 12.0.0 Bumps [paper_trail](https://github.com/airblade/paper_trail) from 10.3.1 to 12.0.0. - [Release notes](https://github.com/airblade/paper_trail/releases) - [Changelog](https://github.com/paper-trail-gem/paper_trail/blob/master/CHANGELOG.md) - [Commits](https://github.com/airblade/paper_trail/compare/v10.3.1...v12.0.0) Signed-off-by: dependabot[bot] --- Gemfile | 2 +- Gemfile.lock | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile b/Gemfile index 9e1d000977..ec7e21c8ab 100644 --- a/Gemfile +++ b/Gemfile @@ -75,7 +75,7 @@ gem 'geocoder' gem 'gmaps4rails' gem 'mimemagic', '> 0.3.5' gem 'paperclip', '~> 3.4.1' -gem 'paper_trail', '~> 10.3.1' +gem 'paper_trail', '~> 12.0.0' gem 'rack-rewrite' gem 'rack-ssl', require: 'rack/ssl' gem 'roadie-rails' diff --git a/Gemfile.lock b/Gemfile.lock index 4a4b33a533..59da6eb274 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -401,8 +401,8 @@ GEM multi_xml (~> 0.5) rack (>= 1.2, < 3) orm_adapter (0.5.0) - paper_trail (10.3.1) - activerecord (>= 4.2) + paper_trail (12.0.0) + activerecord (>= 5.2) request_store (~> 1.1) paperclip (3.4.2) activemodel (>= 3.0.0) @@ -756,7 +756,7 @@ DEPENDENCIES oauth2 (~> 1.4.7) ofn-qz! order_management! - paper_trail (~> 10.3.1) + paper_trail (~> 12.0.0) paperclip (~> 3.4.1) paranoia (~> 2.4) paypal-sdk-merchant (= 1.117.2) From 23ebe91d32b418e4cdfcf60bf3a49d16a0e59d8b Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 1 Jul 2021 13:56:23 +1000 Subject: [PATCH 2/2] Spec current version tracking of order cycles The paper_trail gem doesn't quite work as expected with our implementation. We need some more code or an additional gem: https://github.com/westonganger/paper_trail-association_tracking --- spec/models/order_cycle_spec.rb | 45 +++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/spec/models/order_cycle_spec.rb b/spec/models/order_cycle_spec.rb index 1031a53c6b..3a9fd7006f 100644 --- a/spec/models/order_cycle_spec.rb +++ b/spec/models/order_cycle_spec.rb @@ -497,6 +497,51 @@ describe OrderCycle do end end + describe "version tracking", versioning: true do + let!(:oc) { create(:order_cycle, name: "Original") } + + it "remembers old versions" do + expect { + oc.update!(name: "New name") + }.to change { + oc.versions.count + }.by(1) + + expect(oc.versions.last.reify.name).to eq "Original" + end + + # Needs additional gem: + # https://github.com/westonganger/paper_trail-association_tracking + xit "records versions when adding schedules" do + pending "seems broken with current version" + + expect { + # Creating a schedule associates it automatically: + create(:schedule) + expect(oc.schedules.count).to eq 1 + }.to change { + oc.versions.count + }.by(1) + end + + it "records associated schedules" do + schedule = create(:schedule) + expect(oc.reload.schedules).to eq [schedule] + oc.update!(name: "New name") + + expect(oc.versions.last.custom_data).to eq "[#{schedule.id}]" + end + + it "remembers schedules of the previous version" do + schedule = create(:schedule) + expect(oc.reload.schedules).to eq [schedule] + oc.update!(name: "New name", schedules: []) + + pending "gathering schedule ids before save" + expect(oc.versions.last.custom_data).to eq "[#{schedule.id}]" + end + end + def core_exchange_attributes(exchange) exterior_attribute_keys = %w(id order_cycle_id created_at updated_at) exchange.attributes.