diff options
Diffstat (limited to 'spec/models/ci/namespace_mirror_spec.rb')
-rw-r--r-- | spec/models/ci/namespace_mirror_spec.rb | 38 |
1 files changed, 7 insertions, 31 deletions
diff --git a/spec/models/ci/namespace_mirror_spec.rb b/spec/models/ci/namespace_mirror_spec.rb index 3e77c349ccb..29447cbc89d 100644 --- a/spec/models/ci/namespace_mirror_spec.rb +++ b/spec/models/ci/namespace_mirror_spec.rb @@ -16,7 +16,9 @@ RSpec.describe Ci::NamespaceMirror do expect(group1.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id]) expect(group2.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id, group2.id]) expect(group3.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id, group2.id, group3.id]) - expect(group4.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id, group2.id, group3.id, group4.id]) + expect(group4.reload.ci_namespace_mirror).to have_attributes( + traversal_ids: [group1.id, group2.id, group3.id, group4.id] + ) end context 'scopes' do @@ -103,6 +105,8 @@ RSpec.describe Ci::NamespaceMirror do describe '.sync!' do subject(:sync) { described_class.sync!(Namespaces::SyncEvent.last) } + let(:expected_traversal_ids) { [group1.id, group2.id, group3.id] } + context 'when namespace mirror does not exist in the first place' do let(:namespace) { group3 } @@ -114,7 +118,7 @@ RSpec.describe Ci::NamespaceMirror do it 'creates the mirror' do expect { sync }.to change { described_class.count }.from(3).to(4) - expect(namespace.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id, group2.id, group3.id]) + expect(namespace.reload.ci_namespace_mirror).to have_attributes(traversal_ids: expected_traversal_ids) end end @@ -128,36 +132,8 @@ RSpec.describe Ci::NamespaceMirror do it 'updates the mirror' do expect { sync }.not_to change { described_class.count } - expect(namespace.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id, group2.id, group3.id]) - end - end - - shared_context 'changing the middle namespace' do - let(:namespace) { group2 } - - before do - group2.update!(parent: nil) # creates a sync event - end - - it 'updates traversal_ids for the base and descendants' do - expect { sync }.not_to change { described_class.count } - - expect(group1.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group1.id]) - expect(group2.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group2.id]) - expect(group3.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group2.id, group3.id]) - expect(group4.reload.ci_namespace_mirror).to have_attributes(traversal_ids: [group2.id, group3.id, group4.id]) - end - end - - it_behaves_like 'changing the middle namespace' - - context 'when the FFs use_traversal_ids and use_traversal_ids_for_ancestors are disabled' do - before do - stub_feature_flags(use_traversal_ids: false, - use_traversal_ids_for_ancestors: false) + expect(namespace.reload.ci_namespace_mirror).to have_attributes(traversal_ids: expected_traversal_ids) end - - it_behaves_like 'changing the middle namespace' end end end |