2019-05-18 00:54:41 +05:30
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-09-10 17:25:29 +05:30
|
|
|
require 'rails_helper'
|
|
|
|
|
|
|
|
describe MergeRequestDiffFile 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 the diff is binary' do
|
|
|
|
subject.diff = "\x05\x00\x68\x65\x6c\x6c\x6f"
|
|
|
|
|
|
|
|
expect { subject.utf8_diff }.not_to raise_error
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|