Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/initializers/global_id_spec.rb')
-rw-r--r--spec/initializers/global_id_spec.rb35
1 files changed, 35 insertions, 0 deletions
diff --git a/spec/initializers/global_id_spec.rb b/spec/initializers/global_id_spec.rb
new file mode 100644
index 00000000000..63bfa32d74f
--- /dev/null
+++ b/spec/initializers/global_id_spec.rb
@@ -0,0 +1,35 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe 'global_id' do
+ it 'prepends `Gitlab::Patch::GlobalID`' do
+ expect(GlobalID.ancestors).to include(Gitlab::Patch::GlobalID)
+ end
+
+ it 'patches GlobalID to find aliased models when a deprecation exists' do
+ allow(Gitlab::GlobalId::Deprecations).to receive(:deprecation_for).and_call_original
+ allow(Gitlab::GlobalId::Deprecations).to receive(:deprecation_for).with('Issue').and_return(double(new_model_name: 'Project'))
+ project = create(:project)
+ gid_string = Gitlab::GlobalId.build(model_name: Issue.name, id: project.id).to_s
+
+ expect(GlobalID.new(gid_string)).to have_attributes(
+ to_s: gid_string,
+ model_name: 'Project',
+ model_class: Project,
+ find: project
+ )
+ end
+
+ it 'works as normal when no deprecation exists' do
+ issue = create(:issue)
+ gid_string = Gitlab::GlobalId.build(model_name: Issue.name, id: issue.id).to_s
+
+ expect(GlobalID.new(gid_string)).to have_attributes(
+ to_s: gid_string,
+ model_name: 'Issue',
+ model_class: Issue,
+ find: issue
+ )
+ end
+end