diff options
author | Douwe Maan <douwe@gitlab.com> | 2018-05-28 09:47:06 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2018-05-28 09:47:06 +0000 |
commit | 0a43b25c20010b3eb4c9ab8cef8712df99702fac (patch) | |
tree | a5a88ace827c2329b437070c7774d40c54d4a476 /spec/lib | |
parent | cfdd80ec10c669a6f6811aef02b0df233a709881 (diff) | |
parent | bb8f2520b4254c9dabe377df48e29c5f17894a1d (diff) | |
download | gitlab-ce-0a43b25c20010b3eb4c9ab8cef8712df99702fac.tar.gz |
Merge branch '45190-create-notes-diff-files' into 'master'
Persist and use truncated note diffs instead requesting Gitaly in a N+1 manner on MR page
Closes #45190
See merge request gitlab-org/gitlab-ce!18991
Diffstat (limited to 'spec/lib')
-rw-r--r-- | spec/lib/gitlab/diff/file_spec.rb | 54 | ||||
-rw-r--r-- | spec/lib/gitlab/import_export/all_models.yml | 1 |
2 files changed, 55 insertions, 0 deletions
diff --git a/spec/lib/gitlab/diff/file_spec.rb b/spec/lib/gitlab/diff/file_spec.rb index 0c2e18c268a..0588fe935c3 100644 --- a/spec/lib/gitlab/diff/file_spec.rb +++ b/spec/lib/gitlab/diff/file_spec.rb @@ -468,4 +468,58 @@ describe Gitlab::Diff::File do end end end + + describe '#diff_hunk' do + let(:raw_diff) do + <<EOS +@@ -6,12 +6,18 @@ module Popen + + def popen(cmd, path=nil) + unless cmd.is_a?(Array) +- raise "System commands must be given as an array of strings" ++ raise RuntimeError, "System commands must be given as an array of strings" + end + + path ||= Dir.pwd +- vars = { "PWD" => path } +- options = { chdir: path } ++ ++ vars = { ++ "PWD" => path ++ } ++ ++ options = { ++ chdir: path ++ } + + unless File.directory?(path) + FileUtils.mkdir_p(path) +@@ -19,6 +25,7 @@ module Popen + + @cmd_output = "" + @cmd_status = 0 ++ + Open3.popen3(vars, *cmd, options) do |stdin, stdout, stderr, wait_thr| + @cmd_output << stdout.read + @cmd_output << stderr.read +EOS + end + + it 'returns raw diff up to given line index' do + allow(diff_file).to receive(:raw_diff) { raw_diff } + diff_line = instance_double(Gitlab::Diff::Line, index: 5) + + diff_hunk = <<EOS +@@ -6,12 +6,18 @@ module Popen + + def popen(cmd, path=nil) + unless cmd.is_a?(Array) +- raise "System commands must be given as an array of strings" ++ raise RuntimeError, "System commands must be given as an array of strings" + end +EOS + + expect(diff_file.diff_hunk(diff_line)).to eq(diff_hunk) + end + end end diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml index 8b46b04b8b5..fb5fd300dbb 100644 --- a/spec/lib/gitlab/import_export/all_models.yml +++ b/spec/lib/gitlab/import_export/all_models.yml @@ -35,6 +35,7 @@ notes: - todos - events - system_note_metadata +- note_diff_file label_links: - target - label |