Adds tests for builds url and tabs behaviour
This commit is contained in:
parent
cc4434a483
commit
58d6120a3b
3 changed files with 89 additions and 3 deletions
|
@ -1,9 +1,9 @@
|
|||
.tabs-holder
|
||||
%ul.pipelines-tabs.nav-links.no-top.no-bottom
|
||||
%li
|
||||
%li.js-pipeline-tab-link
|
||||
= link_to namespace_project_pipeline_path(@project.namespace, @project, @pipeline), data: { target: 'div#js-tab-pipeline', action: 'pipelines', toggle: 'tab' }, class: 'pipeline-tab' do
|
||||
Pipeline
|
||||
%li
|
||||
%li.js-builds-tab-link
|
||||
= link_to builds_namespace_project_pipeline_path(@project.namespace, @project, @pipeline), data: {target: 'div#js-tab-builds', action: 'builds', toggle: 'tab' }, class: 'builds-tab' do
|
||||
Builds
|
||||
%span.badge.js-builds-counter= pipeline.statuses.count
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
- page_title "Pipeline"
|
||||
= render "projects/pipelines/head"
|
||||
|
||||
%div.js-pipeline-container{ class: container_class, data: {controller_action: "#{controller.action_name}"} }
|
||||
%div.js-pipeline-container{ class: container_class, data: { controller_action: "#{controller.action_name}" } }
|
||||
- if @commit
|
||||
= render "projects/pipelines/info"
|
||||
|
||||
|
|
|
@ -178,6 +178,10 @@ describe "Pipelines" do
|
|||
expect(page).to have_link('Play')
|
||||
end
|
||||
|
||||
it 'shows Pipeline tab pane as active' do
|
||||
expect(page).to have_css('#js-tab-pipeline.active')
|
||||
end
|
||||
|
||||
context 'page tabs' do
|
||||
it 'shows Pipeline and Builds tabs with link' do
|
||||
expect(page).to have_link('Pipeline')
|
||||
|
@ -187,6 +191,88 @@ describe "Pipelines" do
|
|||
it 'shows counter in Builds tab' do
|
||||
expect(page.find('.js-builds-counter').text).to eq(pipeline.statuses.count.to_s)
|
||||
end
|
||||
|
||||
it 'shows Pipeline tab as active' do
|
||||
expect(page).to have_css('li.js-pipeline-tab-link.active')
|
||||
end
|
||||
end
|
||||
|
||||
context 'retrying builds' do
|
||||
it { expect(page).not_to have_content('retried') }
|
||||
|
||||
context 'when retrying' do
|
||||
before { click_on 'Retry failed' }
|
||||
|
||||
it { expect(page).not_to have_content('Retry failed') }
|
||||
it { expect(page).to have_selector('.retried') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'canceling builds' do
|
||||
it { expect(page).not_to have_selector('.ci-canceled') }
|
||||
|
||||
context 'when canceling' do
|
||||
before { click_on 'Cancel running' }
|
||||
|
||||
it { expect(page).not_to have_content('Cancel running') }
|
||||
it { expect(page).to have_selector('.ci-canceled') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'playing manual build' do
|
||||
before do
|
||||
within '.pipeline-holder' do
|
||||
click_link('Play')
|
||||
end
|
||||
end
|
||||
|
||||
it { expect(@manual.reload).to be_pending }
|
||||
end
|
||||
end
|
||||
|
||||
describe 'GET /:project/pipelines/:id/builds' do
|
||||
let(:project) { create(:project) }
|
||||
let(:pipeline) { create(:ci_pipeline, project: project, ref: 'master', sha: project.commit.id) }
|
||||
|
||||
before do
|
||||
@success = create(:ci_build, :success, pipeline: pipeline, stage: 'build', name: 'build')
|
||||
@failed = create(:ci_build, :failed, pipeline: pipeline, stage: 'test', name: 'test', commands: 'test')
|
||||
@running = create(:ci_build, :running, pipeline: pipeline, stage: 'deploy', name: 'deploy')
|
||||
@manual = create(:ci_build, :manual, pipeline: pipeline, stage: 'deploy', name: 'manual build')
|
||||
@external = create(:generic_commit_status, status: 'success', pipeline: pipeline, name: 'jenkins', stage: 'external')
|
||||
end
|
||||
|
||||
before { visit builds_namespace_project_pipeline_path(project.namespace, project, pipeline)}
|
||||
|
||||
it 'shows a list of builds' do
|
||||
expect(page).to have_content('Test')
|
||||
expect(page).to have_content(@success.id)
|
||||
expect(page).to have_content('Deploy')
|
||||
expect(page).to have_content(@failed.id)
|
||||
expect(page).to have_content(@running.id)
|
||||
expect(page).to have_content(@external.id)
|
||||
expect(page).to have_content('Retry failed')
|
||||
expect(page).to have_content('Cancel running')
|
||||
expect(page).to have_link('Play')
|
||||
end
|
||||
|
||||
it 'shows Builds tab pane as active' do
|
||||
expect(page).to have_css('#js-tab-builds.active')
|
||||
end
|
||||
|
||||
context 'page tabs' do
|
||||
it 'shows Pipeline and Builds tabs with link' do
|
||||
expect(page).to have_link('Pipeline')
|
||||
expect(page).to have_link('Builds')
|
||||
end
|
||||
|
||||
it 'shows counter in Builds tab' do
|
||||
expect(page.find('.js-builds-counter').text).to eq(pipeline.statuses.count.to_s)
|
||||
end
|
||||
|
||||
it 'shows Builds tab as active' do
|
||||
expect(page).to have_css('li.js-builds-tab-link.active')
|
||||
end
|
||||
end
|
||||
|
||||
context 'retrying builds' do
|
||||
|
|
Loading…
Reference in a new issue