summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-10-06 20:36:22 +0200
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2015-10-06 20:36:22 +0200
commit27b75b2b2d9c274fca005949f645d97ce9333d71 (patch)
tree39f0d2af7098758bb89e8c1bb2e7584ec734eb87
parent04c7dc2a9e2385ce47a70205eafd4cf4f91a0bba (diff)
downloadgitlab-ce-27b75b2b2d9c274fca005949f645d97ce9333d71.tar.gz
Refactor commit/build tests and fix CI cancel
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
-rw-r--r--CHANGELOG1
-rw-r--r--app/controllers/ci/commits_controller.rb2
-rw-r--r--spec/features/builds_spec.rb22
-rw-r--r--spec/features/ci/builds_spec.rb28
-rw-r--r--spec/features/commits_spec.rb (renamed from spec/features/ci/commits_spec.rb)45
5 files changed, 36 insertions, 62 deletions
diff --git a/CHANGELOG b/CHANGELOG
index 0400dbfabec..388fa2f8966 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -32,6 +32,7 @@ v 8.1.0 (unreleased)
- Fix User Identities API. It now allows you to properly create or update user's identities.
- Add user preference to change layout width (Peter Göbel)
- Use commit status in merge request widget as preffered source of CI status
+ - Integrate CI commit and build pages into project pages
v 8.0.4
- Fix Message-ID header to be RFC 2111-compliant to prevent e-mails being dropped (Stan Hu)
diff --git a/app/controllers/ci/commits_controller.rb b/app/controllers/ci/commits_controller.rb
index 404e0e4b412..7e6705c9702 100644
--- a/app/controllers/ci/commits_controller.rb
+++ b/app/controllers/ci/commits_controller.rb
@@ -16,7 +16,7 @@ module Ci
def cancel
commit.builds.running_or_pending.each(&:cancel)
- redirect_to ci_project_commits_path(project, commit.sha)
+ redirect_to namespace_project_commit_path(commit.gl_project.namespace, commit.gl_project, commit.sha)
end
private
diff --git a/spec/features/builds_spec.rb b/spec/features/builds_spec.rb
new file mode 100644
index 00000000000..d0d60491b65
--- /dev/null
+++ b/spec/features/builds_spec.rb
@@ -0,0 +1,22 @@
+require 'spec_helper'
+
+describe "Builds" do
+
+ before do
+ login_as(:user)
+ @commit = FactoryGirl.create :ci_commit
+ @build = FactoryGirl.create :ci_build, commit: @commit
+ @gl_project = @commit.project.gl_project
+ @gl_project.team << [@user, :master]
+ end
+
+ describe "GET /:project/builds/:id" do
+ before do
+ visit namespace_project_build_path(@gl_project.namespace, @gl_project, @build)
+ end
+
+ it { expect(page).to have_content @commit.sha[0..7] }
+ it { expect(page).to have_content @commit.git_commit_message }
+ it { expect(page).to have_content @commit.git_author_name }
+ end
+end
diff --git a/spec/features/ci/builds_spec.rb b/spec/features/ci/builds_spec.rb
index d65699dbefa..07f76e4065c 100644
--- a/spec/features/ci/builds_spec.rb
+++ b/spec/features/ci/builds_spec.rb
@@ -9,16 +9,6 @@ describe "Builds" do
@commit.project.gl_project.team << [@user, :master]
end
- describe "GET /:project/builds/:id" do
- before do
- visit ci_project_build_path(@commit.project, @build)
- end
-
- it { expect(page).to have_content @commit.sha[0..7] }
- it { expect(page).to have_content @commit.git_commit_message }
- it { expect(page).to have_content @commit.git_author_name }
- end
-
describe "GET /:project/builds/:id/cancel" do
before do
@build.run!
@@ -40,22 +30,4 @@ describe "Builds" do
it { expect(page).to have_content 'Cancel' }
end
end
-
- context :public_project do
- describe "Show page public accessible" do
- before do
- @commit = FactoryGirl.create :ci_commit
- @commit.project.public = true
- @commit.project.save
-
- @runner = FactoryGirl.create :ci_specific_runner
- @build = FactoryGirl.create :ci_build, commit: @commit, runner: @runner
-
- stub_gitlab_calls
- visit ci_project_build_path(@commit.project, @build)
- end
-
- it { expect(page).to have_content @commit.sha[0..7] }
- end
- end
end
diff --git a/spec/features/ci/commits_spec.rb b/spec/features/commits_spec.rb
index b4236e1e589..5da220859e3 100644
--- a/spec/features/ci/commits_spec.rb
+++ b/spec/features/commits_spec.rb
@@ -1,14 +1,17 @@
require 'spec_helper'
describe "Commits" do
- include Ci::CommitsHelper
+ include CiStatusHelper
- context "Authenticated user" do
+ let(:project) { create(:project) }
+
+ describe "CI" do
before do
- @commit = FactoryGirl.create :ci_commit
- @build = FactoryGirl.create :ci_build, commit: @commit
login_as :user
- @commit.project.gl_project.team << [@user, :master]
+ project.team << [@user, :master]
+ @ci_project = project.ensure_gitlab_ci_project
+ @commit = FactoryGirl.create :ci_commit, gl_project: project, sha: project.commit.sha
+ @build = FactoryGirl.create :ci_build, commit: @commit
end
before do
@@ -17,7 +20,7 @@ describe "Commits" do
describe "GET /:project/commits/:sha" do
before do
- visit ci_commit_path(@commit)
+ visit ci_status_path(@commit)
end
it { expect(page).to have_content @commit.sha[0..7] }
@@ -27,47 +30,23 @@ describe "Commits" do
describe "Cancel commit" do
it "cancels commit" do
- visit ci_commit_path(@commit)
+ visit ci_status_path(@commit)
click_on "Cancel"
-
expect(page).to have_content "canceled"
end
end
describe ".gitlab-ci.yml not found warning" do
it "does not show warning" do
- visit ci_commit_path(@commit)
-
+ visit ci_status_path(@commit)
expect(page).not_to have_content ".gitlab-ci.yml not found in this commit"
end
it "shows warning" do
stub_ci_commit_yaml_file(nil)
-
- visit ci_commit_path(@commit)
-
+ visit ci_status_path(@commit)
expect(page).to have_content ".gitlab-ci.yml not found in this commit"
end
end
end
-
- context "Public pages" do
- before do
- @commit = FactoryGirl.create :ci_commit
- @commit.project.public = true
- @commit.project.save
-
- @build = FactoryGirl.create :ci_build, commit: @commit
- end
-
- describe "GET /:project/commits/:sha" do
- before do
- visit ci_commit_path(@commit)
- end
-
- it { expect(page).to have_content @commit.sha[0..7] }
- it { expect(page).to have_content @commit.git_commit_message }
- it { expect(page).to have_content @commit.git_author_name }
- end
- end
end