From 9e26d24dc985d7e86695fc64675b8a956cce6077 Mon Sep 17 00:00:00 2001 From: ajugo Date: Fri, 5 Jan 2024 14:47:44 +0100 Subject: [PATCH] Reset relationship counter when duplication repository row [SCI-9930] (#6881) --- .../repository_actions/duplicate_rows.rb | 4 +++- .../repository_actions/duplicate_rows_spec.rb | 24 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/app/services/repository_actions/duplicate_rows.rb b/app/services/repository_actions/duplicate_rows.rb index 359574f7b..346e7e633 100644 --- a/app/services/repository_actions/duplicate_rows.rb +++ b/app/services/repository_actions/duplicate_rows.rb @@ -48,7 +48,9 @@ module RepositoryActions name: "#{name} (1)", created_by_id: user_id, created_at: timestamp, - updated_at: timestamp } + updated_at: timestamp, + parent_connections_count: 0, + child_connections_count: 0 } end end end diff --git a/spec/services/repository_actions/duplicate_rows_spec.rb b/spec/services/repository_actions/duplicate_rows_spec.rb index 43ada224d..7667117c0 100644 --- a/spec/services/repository_actions/duplicate_rows_spec.rb +++ b/spec/services/repository_actions/duplicate_rows_spec.rb @@ -22,6 +22,7 @@ describe RepositoryActions::DuplicateRows do describe '#call' do before do @rows_ids = [] + @rows = [] 3.times do |index| row = create :repository_row, name: "row (#{index})", @@ -40,7 +41,17 @@ describe RepositoryActions::DuplicateRows do repository_column: list_column } @rows_ids << row.id.to_s + @rows << row end + + create :repository_row_connection, parent: @rows.first, + child: @rows.second, + created_by: user, + last_modified_by: user + create :repository_row_connection, parent: @rows.last, + child: @rows.first, + created_by: user, + last_modified_by: user end it 'generates a duplicate of selected items' do @@ -93,5 +104,18 @@ describe RepositoryActions::DuplicateRows do expect { described_class.new(user, repository, @rows_ids).call } .to(change { Activity.count }.by(3)) end + + it 'do not create new connections in DB' do + expect { described_class.new(user, repository, @rows_ids).call } + .to(change { RepositoryRowConnection.count }.by(0)) + end + + it 'reset connections counters' do + described_class.new(user, repository, [@rows_ids.first]).call + duplicated_row = repository.repository_rows.order('created_at ASC').last + + expect(duplicated_row.parent_connections_count).to eq 0 + expect(duplicated_row.child_connections_count).to eq 0 + end end end