require 'spec_helper'

describe Gitlab::InlineDiff, lib: true do
  describe '#processing' do
    let(:diff) do
      <<eos
--- a/test.rb
+++ b/test.rb
@@ -1,6 +1,6 @@
 class Test
   def cleanup_string(input)
     return nil if input.nil?
-    input.sub(/[\\r\\n].+/,'').sub(/\\\\[rn].+/, '').strip
+    input.to_s.sub(/[\\r\\n].+/,'').sub(/\\\\[rn].+/, '').strip
   end
 end
eos
    end

    let(:expected) do
      ["--- a/test.rb\n",
       "+++ b/test.rb\n",
       "@@ -1,6 +1,6 @@\n",
       " class Test\n",
       "   def cleanup_string(input)\n",
       "     return nil if input.nil?\n",
       "-    input.#!idiff-start!##!idiff-finish!#sub(/[\\r\\n].+/,'').sub(/\\\\[rn].+/, '').strip\n",
       "+    input.#!idiff-start!#to_s.#!idiff-finish!#sub(/[\\r\\n].+/,'').sub(/\\\\[rn].+/, '').strip\n",
       "   end\n",
       " end\n"]
    end

    let(:subject) { Gitlab::InlineDiff.processing(diff.lines) }

    it 'should retain backslashes' do
      expect(subject).to eq(expected)
    end
  end
end
