Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2015-08-20 11:02:12 +0300
committerRobert Speicher <rspeicher@gmail.com>2015-08-21 00:27:06 +0300
commit31e897ccefd9feac5ca5b1665829cb084a6dcbc4 (patch)
tree062207b68674b17d881d0ba54f673cb769d74f8b /spec
parentf18e33867298db87625058dbb1e17438e1a585a8 (diff)
Fix blame view line groupings
Closes #2305
Diffstat (limited to 'spec')
-rw-r--r--spec/controllers/blame_controller_spec.rb43
1 files changed, 43 insertions, 0 deletions
diff --git a/spec/controllers/blame_controller_spec.rb b/spec/controllers/blame_controller_spec.rb
new file mode 100644
index 00000000000..3ad4d5fc0a8
--- /dev/null
+++ b/spec/controllers/blame_controller_spec.rb
@@ -0,0 +1,43 @@
+require 'spec_helper'
+
+describe Projects::BlameController do
+ let(:project) { create(:project) }
+ let(:user) { create(:user) }
+
+ before do
+ sign_in(user)
+
+ project.team << [user, :master]
+ controller.instance_variable_set(:@project, project)
+ end
+
+ describe "GET show" do
+ render_views
+
+ before do
+ get(:show,
+ namespace_id: project.namespace.to_param,
+ project_id: project.to_param,
+ id: id)
+ end
+
+ context "valid file" do
+ let(:id) { 'master/files/ruby/popen.rb' }
+ it { is_expected.to respond_with(:success) }
+
+ it 'groups blames properly' do
+ blame = assigns(:blame)
+ # Sanity check a few items
+ expect(blame.count).to eq(18)
+ expect(blame[0][:commit].sha).to eq('913c66a37b4a45b9769037c55c2d238bd0942d2e')
+ expect(blame[0][:lines]).to eq(["require 'fileutils'", "require 'open3'", ""])
+
+ expect(blame[1][:commit].sha).to eq('874797c3a73b60d2187ed6e2fcabd289ff75171e')
+ expect(blame[1][:lines]).to eq(["module Popen", " extend self"])
+
+ expect(blame[-1][:commit].sha).to eq('913c66a37b4a45b9769037c55c2d238bd0942d2e')
+ expect(blame[-1][:lines]).to eq([" end", "end"])
+ end
+ end
+ end
+end