Commit 4b9bd188 authored by Filipa Lacerda's avatar Filipa Lacerda

Adds tests for the mini pipeline graph

parent dd5965a1
...@@ -748,7 +748,7 @@ ...@@ -748,7 +748,7 @@
.grouped-pipeline-dropdown { .grouped-pipeline-dropdown {
right: -172px; right: -172px;
top: 23px; top: 23px;
min-height: 191px; min-height: 50px;
a { a {
color: $gl-text-color-light; color: $gl-text-color-light;
......
...@@ -83,7 +83,7 @@ ...@@ -83,7 +83,7 @@
.btn-group.inline .btn-group.inline
- if actions.any? - if actions.any?
.btn-group .btn-group
%a.dropdown-toggle.btn.btn-default{type: 'button', 'data-toggle' => 'dropdown'} %a.dropdown-toggle.btn.btn-default.js-pipeline-dropdown-manual-actions{type: 'button', 'data-toggle' => 'dropdown'}
= custom_icon('icon_play') = custom_icon('icon_play')
= icon('caret-down') = icon('caret-down')
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
...@@ -94,7 +94,7 @@ ...@@ -94,7 +94,7 @@
%span= build.name.humanize %span= build.name.humanize
- if artifacts.present? - if artifacts.present?
.btn-group .btn-group
%a.dropdown-toggle.btn.btn-default.build-artifacts{type: 'button', 'data-toggle' => 'dropdown'} %a.dropdown-toggle.btn.btn-default.build-artifacts.js-pipeline-dropdown-download{type: 'button', 'data-toggle' => 'dropdown'}
= icon("download") = icon("download")
= icon('caret-down') = icon('caret-down')
%ul.dropdown-menu.dropdown-menu-align-right %ul.dropdown-menu.dropdown-menu-align-right
......
require 'spec_helper' require 'spec_helper'
describe "Pipelines" do describe "Pipelines", feature: true, js:true do
include GitlabRoutingHelper include GitlabRoutingHelper
include WaitForAjax
let(:project) { create(:empty_project) } let(:project) { create(:empty_project) }
let(:user) { create(:user) } let(:user) { create(:user) }
...@@ -76,7 +77,11 @@ describe "Pipelines" do ...@@ -76,7 +77,11 @@ describe "Pipelines" do
it { expect(page).to have_link('Manual build') } it { expect(page).to have_link('Manual build') }
context 'when playing' do context 'when playing' do
before { click_link('Manual build') }
before do
find('.js-pipeline-dropdown-manual-actions').click
click_link('Manual build')
end
it { expect(manual.reload).to be_pending } it { expect(manual.reload).to be_pending }
end end
...@@ -131,7 +136,10 @@ describe "Pipelines" do ...@@ -131,7 +136,10 @@ describe "Pipelines" do
before { visit namespace_project_pipelines_path(project.namespace, project) } before { visit namespace_project_pipelines_path(project.namespace, project) }
it { expect(page).to have_selector('.build-artifacts') } it { expect(page).to have_selector('.build-artifacts') }
it { expect(page).to have_link(with_artifacts.name) } it do
find('.js-pipeline-dropdown-download').click
expect(page).to have_link(with_artifacts.name)
end
end end
context 'with artifacts expired' do context 'with artifacts expired' do
...@@ -150,6 +158,42 @@ describe "Pipelines" do ...@@ -150,6 +158,42 @@ describe "Pipelines" do
it { expect(page).not_to have_selector('.build-artifacts') } it { expect(page).not_to have_selector('.build-artifacts') }
end end
end end
context 'mini pipleine graph' do
let!(:build) do
create(:ci_build, pipeline: pipeline, stage: 'build', name: 'build')
end
before do
visit namespace_project_pipelines_path(project.namespace, project)
end
it 'should render a mini pipeline graph' do
endpoint = stage_namespace_project_pipeline_path(pipeline.project.namespace, pipeline.project, pipeline, stage: build.name)
expect(page).to have_selector('.mini-pipeline-graph')
expect(page).to have_selector(".js-builds-dropdown-button[data-stage-endpoint='#{endpoint}']")
end
context 'when clicking a graph stage' do
it 'should open a dropdown' do
find('.js-builds-dropdown-button').trigger('click')
wait_for_ajax
expect(page).to have_link build.name
end
it 'should be possible to retry the failed build' do
find('.js-builds-dropdown-button').trigger('click')
wait_for_ajax
find('a.ci-action-icon-container').trigger('click')
expect(page).not_to have_content('Cancel running')
end
end
end
end end
describe 'GET /:project/pipelines/stage.json?name=stage' do describe 'GET /:project/pipelines/stage.json?name=stage' do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment