diff options
| -rw-r--r-- | app/models/merge.rb | 6 | ||||
| -rw-r--r-- | db/migrate/20180525134233_add_new_id_to_merges.rb | 6 | ||||
| -rw-r--r-- | spec/models/merge_spec.rb | 5 |
3 files changed, 16 insertions, 1 deletions
diff --git a/app/models/merge.rb b/app/models/merge.rb index aca2f4d4d..bcaaf3096 100644 --- a/app/models/merge.rb +++ b/app/models/merge.rb @@ -42,7 +42,11 @@ class Merge < ApplicationModel new&.failed! raise e if Rails.env.test? ensure - attributes = { ended_at: Time.now } + attributes = { + ended_at: Time.now, + new_id: new.try(:id) + } + if status == :running attributes[:status] = :successful referentials.each &:archived! diff --git a/db/migrate/20180525134233_add_new_id_to_merges.rb b/db/migrate/20180525134233_add_new_id_to_merges.rb new file mode 100644 index 000000000..ad112856b --- /dev/null +++ b/db/migrate/20180525134233_add_new_id_to_merges.rb @@ -0,0 +1,6 @@ +class AddNewIdToMerges < ActiveRecord::Migration + def change + add_column :merges, :new_id, :integer, limit: 8 + add_index :merges, :new_id + end +end diff --git a/spec/models/merge_spec.rb b/spec/models/merge_spec.rb index 8c3f48272..59891ea05 100644 --- a/spec/models/merge_spec.rb +++ b/spec/models/merge_spec.rb @@ -86,7 +86,12 @@ RSpec.describe Merge do merge = Merge.create!(workbench: referential.workbench, referentials: [referential, referential]) merge.merge! + expect(merge.status). to eq :successful + output = merge.output.current + + expect(merge.new_id). to eq output.id + output.switch output.routes.each do |route| |
