diff options
author | Stan Hu <stanhu@gmail.com> | 2015-08-20 11:02:12 +0300 |
---|---|---|
committer | Robert Speicher <rspeicher@gmail.com> | 2015-08-21 00:27:06 +0300 |
commit | 31e897ccefd9feac5ca5b1665829cb084a6dcbc4 (patch) | |
tree | 062207b68674b17d881d0ba54f673cb769d74f8b /spec | |
parent | f18e33867298db87625058dbb1e17438e1a585a8 (diff) |
Fix blame view line groupings
Closes #2305
Diffstat (limited to 'spec')
-rw-r--r-- | spec/controllers/blame_controller_spec.rb | 43 |
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 |