diff options
Diffstat (limited to 'spec/initializers/global_id_spec.rb')
-rw-r--r-- | spec/initializers/global_id_spec.rb | 35 |
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 |