summaryrefslogtreecommitdiff
path: root/spec/models/merge_request_diff_file_spec.rb
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2017-07-25 17:57:02 +0100
committerSean McGivern <sean@gitlab.com>2017-07-26 15:34:57 +0100
commit396b8f91ec47ffb5a02ebf6d713ef4cbf04f1f94 (patch)
treec27074b1608622faa29efb8275be983a9331b2db /spec/models/merge_request_diff_file_spec.rb
parent0c563225b663742b4f26731dc7bc822a38f7289b (diff)
downloadgitlab-ce-396b8f91ec47ffb5a02ebf6d713ef4cbf04f1f94.tar.gz
Previously, we used Psych, which would: 1. Check if a string was encoded as binary, and not ASCII-compatible. 2. Add the !binary tag in that case. 3. Convert to base64. We need to do the same thing, using a new column in place of the tag.
Diffstat (limited to 'spec/models/merge_request_diff_file_spec.rb')
-rw-r--r--spec/models/merge_request_diff_file_spec.rb27
1 files changed, 26 insertions, 1 deletions
diff --git a/spec/models/merge_request_diff_file_spec.rb b/spec/models/merge_request_diff_file_spec.rb
index 7276f5b5061..239620ef4fc 100644
--- a/spec/models/merge_request_diff_file_spec.rb
+++ b/spec/models/merge_request_diff_file_spec.rb
@@ -1,8 +1,33 @@
require 'rails_helper'
describe MergeRequestDiffFile, type: :model do
+ describe '#diff' do
+ let(:unpacked) { 'unpacked' }
+ let(:packed) { [unpacked].pack('m0') }
+
+ before do
+ subject.diff = packed
+ end
+
+ context 'when the diff is marked as binary' do
+ before do
+ subject.binary = true
+ end
+
+ it 'unpacks from base 64' do
+ expect(subject.diff).to eq(unpacked)
+ end
+ end
+
+ context 'when the diff is not marked as binary' do
+ it 'returns the raw diff' do
+ expect(subject.diff).to eq(packed)
+ end
+ end
+ end
+
describe '#utf8_diff' do
- it 'does not raise error when a hash value is in binary' do
+ it 'does not raise error when the diff is binary' do
subject.diff = "\x05\x00\x68\x65\x6c\x6c\x6f"
expect { subject.utf8_diff }.not_to raise_error