aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcedricnjanga2018-05-28 05:19:01 -0700
committercedricnjanga2018-05-28 05:19:01 -0700
commit4e77d7ba72f7fa8d0f697f2f8c031b1a1e0b858d (patch)
tree519a8376c28f4757bafb09c91cc369f2cdbac1a6
parentc1ebc713fd0eb4692d679fc80e184cb802c98602 (diff)
downloadchouette-core-4e77d7ba72f7fa8d0f697f2f8c031b1a1e0b858d.tar.bz2
Refs #6844 Add #new_id attribute to Merge model6844-merge-new-id
-rw-r--r--app/models/merge.rb6
-rw-r--r--db/migrate/20180525134233_add_new_id_to_merges.rb6
-rw-r--r--spec/models/merge_spec.rb5
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|