Fix spec for Gitlab::JsonCache

parent bcc988a6
...@@ -146,6 +146,18 @@ describe Gitlab::JsonCache do ...@@ -146,6 +146,18 @@ describe Gitlab::JsonCache do
expect(cache.read(key, BroadcastMessage)).to be_nil expect(cache.read(key, BroadcastMessage)).to be_nil
end end
it 'gracefully handles excluded fields from attributes during serialization' do
allow(backend).to receive(:read)
.with(expanded_key)
.and_return(broadcast_message.attributes.except("message_html").to_json)
result = cache.read(key, BroadcastMessage)
BroadcastMessage.cached_markdown_fields.html_fields.each do |field|
expect(result.public_send(field)).to be_nil
end
end
end end
context 'when the cached value is an array' do context 'when the cached value is an array' do
...@@ -327,7 +339,9 @@ describe Gitlab::JsonCache do ...@@ -327,7 +339,9 @@ describe Gitlab::JsonCache do
.with(expanded_key) .with(expanded_key)
.and_return('{') .and_return('{')
expect(cache.read(key, BroadcastMessage)).to be_nil result = cache.fetch(key, as: BroadcastMessage) { 'block result' }
expect(result).to eq 'block result'
end end
it 'gracefully handles an empty hash' do it 'gracefully handles an empty hash' do
...@@ -335,7 +349,7 @@ describe Gitlab::JsonCache do ...@@ -335,7 +349,7 @@ describe Gitlab::JsonCache do
.with(expanded_key) .with(expanded_key)
.and_return('{}') .and_return('{}')
expect(cache.read(key, BroadcastMessage)).to be_a(BroadcastMessage) expect(cache.fetch(key, as: BroadcastMessage)).to be_a(BroadcastMessage)
end end
it 'gracefully handles unknown attributes' do it 'gracefully handles unknown attributes' do
...@@ -343,17 +357,19 @@ describe Gitlab::JsonCache do ...@@ -343,17 +357,19 @@ describe Gitlab::JsonCache do
.with(expanded_key) .with(expanded_key)
.and_return(broadcast_message.attributes.merge(unknown_attribute: 1).to_json) .and_return(broadcast_message.attributes.merge(unknown_attribute: 1).to_json)
expect(cache.read(key, BroadcastMessage)).to be_nil result = cache.fetch(key, as: BroadcastMessage) { 'block result' }
expect(result).to eq 'block result'
end end
it 'gracefully handles excluded fields from attributes during serialization' do it 'gracefully handles excluded fields from attributes during serialization' do
backend.write(expanded_key, broadcast_message.to_json) allow(backend).to receive(:read)
.with(expanded_key)
.and_return(broadcast_message.attributes.except("message_html").to_json)
result = cache.fetch(key, as: BroadcastMessage) { 'block result' } result = cache.fetch(key, as: BroadcastMessage) { 'block result' }
excluded_fields = BroadcastMessage.cached_markdown_fields.html_fields BroadcastMessage.cached_markdown_fields.html_fields.each do |field|
(excluded_fields + ['cached_markdown_version']).each do |field|
expect(result.public_send(field)).to be_nil expect(result.public_send(field)).to be_nil
end end
end end
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment