summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb')
-rw-r--r--spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb18
1 files changed, 15 insertions, 3 deletions
diff --git a/spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb b/spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb
index d376dcb5b18..ed11f8ea6bb 100644
--- a/spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb
+++ b/spec/lib/gitlab/merge_requests/mergeability/results_store_spec.rb
@@ -10,10 +10,22 @@ RSpec.describe Gitlab::MergeRequests::Mergeability::ResultsStore do
let(:merge_request) { double }
describe '#read' do
- it 'calls #retrieve on the interface' do
- expect(interface).to receive(:retrieve_check).with(merge_check: merge_check)
+ let(:result_hash) { { 'status' => 'success', 'payload' => {} } }
- results_store.read(merge_check: merge_check)
+ it 'calls #retrieve_check on the interface' do
+ expect(interface).to receive(:retrieve_check).with(merge_check: merge_check).and_return(result_hash)
+
+ cached_result = results_store.read(merge_check: merge_check)
+
+ expect(cached_result.status).to eq(result_hash['status'].to_sym)
+ expect(cached_result.payload).to eq(result_hash['payload'])
+ end
+
+ context 'when #retrieve_check returns nil' do
+ it 'returns nil' do
+ expect(interface).to receive(:retrieve_check).with(merge_check: merge_check).and_return(nil)
+ expect(results_store.read(merge_check: merge_check)).to be_nil
+ end
end
end