diff options
Diffstat (limited to 'spec/lib/gitlab/cache/helpers_spec.rb')
-rw-r--r-- | spec/lib/gitlab/cache/helpers_spec.rb | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/spec/lib/gitlab/cache/helpers_spec.rb b/spec/lib/gitlab/cache/helpers_spec.rb index 39d37e979b4..06131ee4546 100644 --- a/spec/lib/gitlab/cache/helpers_spec.rb +++ b/spec/lib/gitlab/cache/helpers_spec.rb @@ -33,10 +33,23 @@ RSpec.describe Gitlab::Cache::Helpers, :use_clean_rails_redis_caching do context 'single object' do let_it_be(:presentable) { create(:merge_request, source_project: project, source_branch: 'wip') } - it_behaves_like 'object cache helper' + context 'when presenter is a serializer' do + let(:expected_cache_key_prefix) { 'MergeRequestSerializer' } + + it_behaves_like 'object cache helper' + end + + context 'when presenter is a Grape::Entity' do + let(:presenter) { API::Entities::MergeRequest } + let(:expected_cache_key_prefix) { 'API::Entities::MergeRequest' } + + it_behaves_like 'object cache helper' + end end context 'collection of objects' do + let(:expected_cache_key_prefix) { 'MergeRequestSerializer' } + let_it_be(:presentable) do [ create(:merge_request, source_project: project, source_branch: 'fix'), @@ -46,5 +59,17 @@ RSpec.describe Gitlab::Cache::Helpers, :use_clean_rails_redis_caching do it_behaves_like 'collection cache helper' end + + context 'when passed presenter is not a serializer or an entity' do + let(:presenter) { User } + + let_it_be(:presentable) do + create(:merge_request, source_project: project, source_branch: 'master') + end + + it 'throws an exception' do + expect { subject }.to raise_exception(ArgumentError, "presenter User is not supported") + end + end end end |