Show 'All' tab by default in the builds page
This commit is contained in:
parent
b9ec1aaec8
commit
567dc62b6d
7 changed files with 105 additions and 69 deletions
|
@ -14,6 +14,8 @@ v 8.4.0 (unreleased)
|
|||
- Revert back upvote and downvote button to the issue and MR pages
|
||||
- Swap position of Assignee and Author selector on Issuables (Zeger-Jan van de Weg)
|
||||
- Fix version check image in Safari
|
||||
- Enable "Add key" button when user fills in a proper key (Stan Hu)
|
||||
- Show 'All' tab by default in the builds page
|
||||
|
||||
v 8.3.3 (unreleased)
|
||||
- Fix project transfer e-mail sending incorrect paths in e-mail notification (Stan Hu)
|
||||
|
|
|
@ -5,12 +5,12 @@ class Admin::BuildsController < Admin::ApplicationController
|
|||
@builds = @all_builds.order('created_at DESC')
|
||||
@builds =
|
||||
case @scope
|
||||
when 'all'
|
||||
@builds
|
||||
when 'running'
|
||||
@builds.running_or_pending.reverse_order
|
||||
when 'finished'
|
||||
@builds.finished
|
||||
else
|
||||
@builds.running_or_pending.reverse_order
|
||||
@builds
|
||||
end
|
||||
@builds = @builds.page(params[:page]).per(30)
|
||||
end
|
||||
|
|
|
@ -12,12 +12,12 @@ class Projects::BuildsController < Projects::ApplicationController
|
|||
@builds = @all_builds.order('created_at DESC')
|
||||
@builds =
|
||||
case @scope
|
||||
when 'all'
|
||||
@builds
|
||||
when 'running'
|
||||
@builds.running_or_pending.reverse_order
|
||||
when 'finished'
|
||||
@builds.finished
|
||||
else
|
||||
@builds.running_or_pending.reverse_order
|
||||
@builds
|
||||
end
|
||||
@builds = @builds.page(params[:page]).per(30)
|
||||
end
|
||||
|
|
|
@ -7,6 +7,11 @@
|
|||
%ul.center-top-menu
|
||||
%li{class: ('active' if @scope.nil?)}
|
||||
= link_to admin_builds_path do
|
||||
All
|
||||
%span.badge.js-totalbuilds-count= @all_builds.count(:id)
|
||||
|
||||
%li{class: ('active' if @scope == 'running')}
|
||||
= link_to admin_builds_path(scope: :running) do
|
||||
Running
|
||||
%span.badge.js-running-count= number_with_delimiter(@all_builds.running_or_pending.count(:id))
|
||||
|
||||
|
@ -15,11 +20,6 @@
|
|||
Finished
|
||||
%span.badge.js-running-count= number_with_delimiter(@all_builds.finished.count(:id))
|
||||
|
||||
%li{class: ('active' if @scope == 'all')}
|
||||
= link_to admin_builds_path(scope: :all) do
|
||||
All
|
||||
%span.badge.js-totalbuilds-count= number_with_delimiter(@all_builds.count(:id))
|
||||
|
||||
.gray-content-block
|
||||
#{(@scope || 'running').capitalize} builds
|
||||
|
||||
|
|
|
@ -11,6 +11,12 @@
|
|||
%ul.center-top-menu
|
||||
%li{class: ('active' if @scope.nil?)}
|
||||
= link_to project_builds_path(@project) do
|
||||
All
|
||||
%span.badge.js-totalbuilds-count
|
||||
= number_with_delimiter(@all_builds.count(:id))
|
||||
|
||||
%li{class: ('active' if @scope == 'running')}
|
||||
= link_to project_builds_path(@project, scope: :running) do
|
||||
Running
|
||||
%span.badge.js-running-count
|
||||
= number_with_delimiter(@all_builds.running_or_pending.count(:id))
|
||||
|
@ -21,12 +27,6 @@
|
|||
%span.badge.js-running-count
|
||||
= number_with_delimiter(@all_builds.finished.count(:id))
|
||||
|
||||
%li{class: ('active' if @scope == 'all')}
|
||||
= link_to project_builds_path(@project, scope: :all) do
|
||||
All
|
||||
%span.badge.js-totalbuilds-count
|
||||
= number_with_delimiter(@all_builds.count(:id))
|
||||
|
||||
.gray-content-block
|
||||
#{(@scope || 'running').capitalize} builds from this project
|
||||
|
||||
|
|
|
@ -1,69 +1,98 @@
|
|||
require 'spec_helper'
|
||||
|
||||
describe "Admin Builds" do
|
||||
let(:commit) { FactoryGirl.create :ci_commit }
|
||||
let(:build) { FactoryGirl.create :ci_build, commit: commit }
|
||||
|
||||
describe 'Admin Builds' do
|
||||
before do
|
||||
login_as :admin
|
||||
end
|
||||
|
||||
describe "GET /admin/builds" do
|
||||
before do
|
||||
build
|
||||
visit admin_builds_path
|
||||
end
|
||||
describe 'GET /admin/builds' do
|
||||
let(:commit) { create(:ci_commit) }
|
||||
|
||||
it { expect(page).to have_content "Running" }
|
||||
it { expect(page).to have_content build.short_sha }
|
||||
end
|
||||
context 'All tab' do
|
||||
context 'when have builds' do
|
||||
it 'shows all builds' do
|
||||
create(:ci_build, commit: commit, status: :pending)
|
||||
create(:ci_build, commit: commit, status: :running)
|
||||
create(:ci_build, commit: commit, status: :success)
|
||||
create(:ci_build, commit: commit, status: :failed)
|
||||
|
||||
describe "Tabs" do
|
||||
it "shows all builds" do
|
||||
FactoryGirl.create :ci_build, commit: commit, status: "pending"
|
||||
FactoryGirl.create :ci_build, commit: commit, status: "running"
|
||||
FactoryGirl.create :ci_build, commit: commit, status: "success"
|
||||
FactoryGirl.create :ci_build, commit: commit, status: "failed"
|
||||
visit admin_builds_path
|
||||
|
||||
visit admin_builds_path
|
||||
|
||||
within ".center-top-menu" do
|
||||
click_on "All"
|
||||
expect(page).to have_selector('.project-issuable-filter li.active', text: 'All')
|
||||
expect(page.all('.build-link').size).to eq(4)
|
||||
expect(page).to have_link 'Cancel all'
|
||||
end
|
||||
end
|
||||
|
||||
expect(page.all(".build-link").size).to eq(4)
|
||||
context 'when have no builds' do
|
||||
it 'shows a message' do
|
||||
visit admin_builds_path
|
||||
|
||||
expect(page).to have_selector('.project-issuable-filter li.active', text: 'All')
|
||||
expect(page).to have_content 'No builds to show'
|
||||
expect(page).not_to have_link 'Cancel all'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "shows finished builds" do
|
||||
build = FactoryGirl.create :ci_build, commit: commit, status: "pending"
|
||||
build1 = FactoryGirl.create :ci_build, commit: commit, status: "running"
|
||||
build2 = FactoryGirl.create :ci_build, commit: commit, status: "success"
|
||||
context 'Running tab' do
|
||||
context 'when have running builds' do
|
||||
it 'shows running builds' do
|
||||
build1 = create(:ci_build, commit: commit, status: :pending)
|
||||
build2 = create(:ci_build, commit: commit, status: :success)
|
||||
build3 = create(:ci_build, commit: commit, status: :failed)
|
||||
|
||||
visit admin_builds_path
|
||||
visit admin_builds_path(scope: :running)
|
||||
|
||||
within ".center-top-menu" do
|
||||
click_on "Finished"
|
||||
expect(page).to have_selector('.project-issuable-filter li.active', text: 'Running')
|
||||
expect(page.find('.build-link')).to have_content(build1.id)
|
||||
expect(page.find('.build-link')).not_to have_content(build2.id)
|
||||
expect(page.find('.build-link')).not_to have_content(build3.id)
|
||||
expect(page).to have_link 'Cancel all'
|
||||
end
|
||||
end
|
||||
|
||||
expect(page.find(".build-link")).not_to have_content(build.id)
|
||||
expect(page.find(".build-link")).not_to have_content(build1.id)
|
||||
expect(page.find(".build-link")).to have_content(build2.id)
|
||||
context 'when have no builds running' do
|
||||
it 'shows a message' do
|
||||
create(:ci_build, commit: commit, status: :success)
|
||||
|
||||
visit admin_builds_path(scope: :running)
|
||||
|
||||
expect(page).to have_selector('.project-issuable-filter li.active', text: 'Running')
|
||||
expect(page).to have_content 'No builds to show'
|
||||
expect(page).not_to have_link 'Cancel all'
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
it "shows running builds" do
|
||||
build = FactoryGirl.create :ci_build, commit: commit, status: "pending"
|
||||
build2 = FactoryGirl.create :ci_build, commit: commit, status: "success"
|
||||
build3 = FactoryGirl.create :ci_build, commit: commit, status: "failed"
|
||||
context 'Finished tab' do
|
||||
context 'when have finished builds' do
|
||||
it 'shows finished builds' do
|
||||
build1 = create(:ci_build, commit: commit, status: :pending)
|
||||
build2 = create(:ci_build, commit: commit, status: :running)
|
||||
build3 = create(:ci_build, commit: commit, status: :success)
|
||||
|
||||
visit admin_builds_path
|
||||
visit admin_builds_path(scope: :finished)
|
||||
|
||||
within ".center-top-menu" do
|
||||
click_on "Running"
|
||||
expect(page).to have_selector('.project-issuable-filter li.active', text: 'Finished')
|
||||
expect(page.find('.build-link')).not_to have_content(build1.id)
|
||||
expect(page.find('.build-link')).not_to have_content(build2.id)
|
||||
expect(page.find('.build-link')).to have_content(build3.id)
|
||||
expect(page).to have_link 'Cancel all'
|
||||
end
|
||||
end
|
||||
|
||||
expect(page.find(".build-link")).to have_content(build.id)
|
||||
expect(page.find(".build-link")).not_to have_content(build2.id)
|
||||
expect(page.find(".build-link")).not_to have_content(build3.id)
|
||||
context 'when have no builds finished' do
|
||||
it 'shows a message' do
|
||||
create(:ci_build, commit: commit, status: :running)
|
||||
|
||||
visit admin_builds_path(scope: :finished)
|
||||
|
||||
expect(page).to have_selector('.project-issuable-filter li.active', text: 'Finished')
|
||||
expect(page).to have_content 'No builds to show'
|
||||
expect(page).to have_link 'Cancel all'
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -15,11 +15,11 @@ describe "Builds" do
|
|||
context "Running scope" do
|
||||
before do
|
||||
@build.run!
|
||||
visit namespace_project_builds_path(@project.namespace, @project)
|
||||
visit namespace_project_builds_path(@project.namespace, @project, scope: :running)
|
||||
end
|
||||
|
||||
it { expect(page).to have_content 'Running' }
|
||||
it { expect(page).to have_content 'Cancel running' }
|
||||
it { expect(page).to have_selector('.project-issuable-filter li.active', text: 'Running') }
|
||||
it { expect(page).to have_link 'Cancel running' }
|
||||
it { expect(page).to have_content @build.short_sha }
|
||||
it { expect(page).to have_content @build.ref }
|
||||
it { expect(page).to have_content @build.name }
|
||||
|
@ -31,21 +31,22 @@ describe "Builds" do
|
|||
visit namespace_project_builds_path(@project.namespace, @project, scope: :finished)
|
||||
end
|
||||
|
||||
it { expect(page).to have_selector('.project-issuable-filter li.active', text: 'Finished') }
|
||||
it { expect(page).to have_content 'No builds to show' }
|
||||
it { expect(page).to have_content 'Cancel running' }
|
||||
it { expect(page).to have_link 'Cancel running' }
|
||||
end
|
||||
|
||||
context "All builds" do
|
||||
before do
|
||||
@project.builds.running_or_pending.each(&:success)
|
||||
visit namespace_project_builds_path(@project.namespace, @project, scope: :all)
|
||||
visit namespace_project_builds_path(@project.namespace, @project)
|
||||
end
|
||||
|
||||
it { expect(page).to have_content 'All' }
|
||||
it { expect(page).to have_selector('.project-issuable-filter li.active', text: 'All') }
|
||||
it { expect(page).to have_content @build.short_sha }
|
||||
it { expect(page).to have_content @build.ref }
|
||||
it { expect(page).to have_content @build.name }
|
||||
it { expect(page).to_not have_content 'Cancel running' }
|
||||
it { expect(page).to_not have_link 'Cancel running' }
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -56,8 +57,12 @@ describe "Builds" do
|
|||
click_link "Cancel running"
|
||||
end
|
||||
|
||||
it { expect(page).to have_content 'No builds to show' }
|
||||
it { expect(page).to_not have_content 'Cancel running' }
|
||||
it { expect(page).to have_selector('.project-issuable-filter li.active', text: 'All') }
|
||||
it { expect(page).to have_content 'canceled' }
|
||||
it { expect(page).to have_content @build.short_sha }
|
||||
it { expect(page).to have_content @build.ref }
|
||||
it { expect(page).to have_content @build.name }
|
||||
it { expect(page).to_not have_link 'Cancel running' }
|
||||
end
|
||||
|
||||
describe "GET /:project/builds/:id" do
|
||||
|
|
Loading…
Reference in a new issue