Fix Route#rename_children behavior
Given group `gitlab` and `gitlab-org` exists. When rename `gitlab` it will rename `gitlab-org` group route too. This commit fixes it Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
This commit is contained in:
parent
a50cd9eb4b
commit
95e0fac59a
|
@ -13,7 +13,7 @@ class Route < ActiveRecord::Base
|
|||
def rename_children
|
||||
# We update each row separately because MySQL does not have regexp_replace.
|
||||
# rubocop:disable Rails/FindEach
|
||||
Route.where('path LIKE ?', "#{path_was}%").each do |route|
|
||||
Route.where('path LIKE ?', "#{path_was}/%").each do |route|
|
||||
# Note that update column skips validation and callbacks.
|
||||
# We need this to avoid recursive call of rename_children method
|
||||
route.update_column(:path, route.path.sub(path_was, path))
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Fix Route#rename_children behavior
|
||||
merge_request:
|
||||
author:
|
|
@ -1,7 +1,7 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe Route, models: true do
|
||||
let!(:group) { create(:group) }
|
||||
let!(:group) { create(:group, path: 'gitlab') }
|
||||
let!(:route) { group.route }
|
||||
|
||||
describe 'relationships' do
|
||||
|
@ -17,13 +17,15 @@ describe Route, models: true do
|
|||
describe '#rename_children' do
|
||||
let!(:nested_group) { create(:group, path: "test", parent: group) }
|
||||
let!(:deep_nested_group) { create(:group, path: "foo", parent: nested_group) }
|
||||
let!(:similar_group) { create(:group, path: 'gitlab-org') }
|
||||
|
||||
before { route.update_attributes(path: 'bar') }
|
||||
|
||||
it "updates children routes with new path" do
|
||||
route.update_attributes(path: 'bar')
|
||||
|
||||
expect(described_class.exists?(path: 'bar')).to be_truthy
|
||||
expect(described_class.exists?(path: 'bar/test')).to be_truthy
|
||||
expect(described_class.exists?(path: 'bar/test/foo')).to be_truthy
|
||||
expect(described_class.exists?(path: 'gitlab-org')).to be_truthy
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue