From c195b313ad2f84e79475058ab431648bed76fcbc Mon Sep 17 00:00:00 2001
From: Kamil Trzcinski <ayufan@ayufan.eu>
Date: Sun, 7 May 2017 14:09:21 +0200
Subject: [PATCH] Make test that actually displays pipeline graph

---
 .../projects/pipelines/pipelines_spec.rb      | 54 +++++++++++++++
 .../projects/pipelines/show.html.haml_spec.rb | 67 -------------------
 2 files changed, 54 insertions(+), 67 deletions(-)
 delete mode 100644 spec/views/projects/pipelines/show.html.haml_spec.rb

diff --git a/spec/features/projects/pipelines/pipelines_spec.rb b/spec/features/projects/pipelines/pipelines_spec.rb
index 2272b19bc8f..8e820edee35 100644
--- a/spec/features/projects/pipelines/pipelines_spec.rb
+++ b/spec/features/projects/pipelines/pipelines_spec.rb
@@ -370,6 +370,60 @@ describe 'Pipelines', :feature, :js do
       end
     end
 
+    describe 'GET /:project/pipelines/show' do
+      let(:project) { create(:project) }
+
+      let(:pipeline) do
+        create(:ci_empty_pipeline,
+              project: project,
+              sha: project.commit.id,
+              user: user)
+      end
+
+      before do
+        create_build('build', 0, 'build', :success)
+        create_build('test', 1, 'rspec 0:2', :pending)
+        create_build('test', 1, 'rspec 1:2', :running)
+        create_build('test', 1, 'spinach 0:2', :created)
+        create_build('test', 1, 'spinach 1:2', :created)
+        create_build('test', 1, 'audit', :created)
+        create_build('deploy', 2, 'production', :created)
+
+        create(:generic_commit_status, pipeline: pipeline, stage: 'external', name: 'jenkins', stage_idx: 3)
+
+        visit namespace_project_pipeline_path(project.namespace, project, pipeline)
+        wait_for_vue_resource
+      end
+
+      it 'shows a graph with grouped stages' do
+        expect(page).to have_css('.js-pipeline-graph')
+        # expect(page).to have_css('.js-grouped-pipeline-dropdown')
+
+        # header
+        expect(page).to have_text("##{pipeline.id}")
+        expect(page).to have_css('time', text: pipeline.created_at.strftime("%b %d, %Y"))
+        expect(page).to have_selector(%Q(img[alt$="#{pipeline.user.name}'s avatar"]))
+        expect(page).to have_link(pipeline.user.name, href: user_path(pipeline.user))
+
+        # stages
+        expect(page).to have_text('Build')
+        expect(page).to have_text('Test')
+        expect(page).to have_text('Deploy')
+        expect(page).to have_text('External')
+
+        # builds
+        expect(page).to have_text('rspec')
+        expect(page).to have_text('spinach')
+        expect(page).to have_text('rspec 0:2')
+        expect(page).to have_text('production')
+        expect(page).to have_text('jenkins')
+      end
+
+      def create_build(stage, stage_idx, name, status)
+        create(:ci_build, pipeline: pipeline, stage: stage, stage_idx: stage_idx, name: name, status: status)
+      end
+    end
+
     describe 'POST /:project/pipelines' do
       let(:project) { create(:project) }
 
diff --git a/spec/views/projects/pipelines/show.html.haml_spec.rb b/spec/views/projects/pipelines/show.html.haml_spec.rb
deleted file mode 100644
index bb39ec8efbf..00000000000
--- a/spec/views/projects/pipelines/show.html.haml_spec.rb
+++ /dev/null
@@ -1,67 +0,0 @@
-require 'spec_helper'
-
-describe 'projects/pipelines/show' do
-  include Devise::Test::ControllerHelpers
-
-  let(:user) { create(:user) }
-  let(:project) { create(:project, :repository) }
-
-  let(:pipeline) do
-    create(:ci_empty_pipeline,
-           project: project,
-           sha: project.commit.id,
-           user: user)
-  end
-
-  before do
-    controller.prepend_view_path('app/views/projects')
-
-    create_build('build', 0, 'build', :success)
-    create_build('test', 1, 'rspec 0:2', :pending)
-    create_build('test', 1, 'rspec 1:2', :running)
-    create_build('test', 1, 'spinach 0:2', :created)
-    create_build('test', 1, 'spinach 1:2', :created)
-    create_build('test', 1, 'audit', :created)
-    create_build('deploy', 2, 'production', :created)
-
-    create(:generic_commit_status, pipeline: pipeline, stage: 'external', name: 'jenkins', stage_idx: 3)
-
-    assign(:project, project)
-    assign(:pipeline, pipeline.present(current_user: user))
-    assign(:commit, project.commit)
-
-    allow(view).to receive(:can?).and_return(true)
-  end
-
-  it 'shows a graph with grouped stages' do
-    render
-
-    expect(rendered).to have_css('.js-pipeline-graph')
-    expect(rendered).to have_css('.js-grouped-pipeline-dropdown')
-
-    # header
-    expect(rendered).to have_text("##{pipeline.id}")
-    expect(rendered).to have_css('time', text: pipeline.created_at.strftime("%b %d, %Y"))
-    expect(rendered).to have_selector(%Q(img[alt$="#{pipeline.user.name}'s avatar"]))
-    expect(rendered).to have_link(pipeline.user.name, href: user_path(pipeline.user))
-
-    # stages
-    expect(rendered).to have_text('Build')
-    expect(rendered).to have_text('Test')
-    expect(rendered).to have_text('Deploy')
-    expect(rendered).to have_text('External')
-
-    # builds
-    expect(rendered).to have_text('rspec')
-    expect(rendered).to have_text('spinach')
-    expect(rendered).to have_text('rspec 0:2')
-    expect(rendered).to have_text('production')
-    expect(rendered).to have_text('jenkins')
-  end
-
-  private
-
-  def create_build(stage, stage_idx, name, status)
-    create(:ci_build, pipeline: pipeline, stage: stage, stage_idx: stage_idx, name: name, status: status)
-  end
-end
-- 
GitLab