diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2022-11-28 06:10:35 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2022-11-28 06:10:35 +0000 |
commit | 787981be19177a149a901e873f199331ecb873d4 (patch) | |
tree | 163ab57eb1883827dd76a029fabb98a4d7b620c1 /spec/models/merge_request_diff_spec.rb | |
parent | 583699499eb9f56c83563045fdd83f7ae896c082 (diff) | |
download | gitlab-ce-787981be19177a149a901e873f199331ecb873d4.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/models/merge_request_diff_spec.rb')
-rw-r--r-- | spec/models/merge_request_diff_spec.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/spec/models/merge_request_diff_spec.rb b/spec/models/merge_request_diff_spec.rb index 22fed716897..a17b90930f0 100644 --- a/spec/models/merge_request_diff_spec.rb +++ b/spec/models/merge_request_diff_spec.rb @@ -507,6 +507,50 @@ RSpec.describe MergeRequestDiff do end end + describe '#paginated_diffs' do + context 'when no persisted files available' do + before do + diff_with_commits.clean! + end + + it 'returns a Gitlab::Diff::FileCollection::Compare' do + diffs = diff_with_commits.paginated_diffs(1, 10) + + expect(diffs).to be_a(Gitlab::Diff::FileCollection::Compare) + expect(diffs.diff_files.size).to eq(10) + end + end + + context 'when persisted files available' do + it 'returns paginated diffs' do + diffs = diff_with_commits.paginated_diffs(1, 10) + + expect(diffs).to be_a(Gitlab::Diff::FileCollection::PaginatedMergeRequestDiff) + expect(diffs.diff_files.size).to eq(10) + end + + it 'sorts diff files directory first' do + diff_with_commits.update!(sorted: false) # Mark as unsorted so it'll re-order + + # There will be 11 returned, as we have to take into account for new and old paths + expect(diff_with_commits.paginated_diffs(1, 10).diff_paths).to eq( + [ + 'bar/branch-test.txt', + 'custom-highlighting/test.gitlab-custom', + 'encoding/iso8859.txt', + 'files/images/wm.svg', + 'files/js/commit.js.coffee', + 'files/js/commit.coffee', + 'files/lfs/lfs_object.iso', + 'files/ruby/popen.rb', + 'files/ruby/regex.rb', + 'files/.DS_Store', + 'files/whitespace' + ]) + end + end + end + describe '#diffs' do let(:diff_options) { {} } |