Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/controllers/admin/runner_projects_controller_spec.rb')
-rw-r--r--spec/controllers/admin/runner_projects_controller_spec.rb43
1 files changed, 39 insertions, 4 deletions
diff --git a/spec/controllers/admin/runner_projects_controller_spec.rb b/spec/controllers/admin/runner_projects_controller_spec.rb
index e5f63025cf7..98f961f66bb 100644
--- a/spec/controllers/admin/runner_projects_controller_spec.rb
+++ b/spec/controllers/admin/runner_projects_controller_spec.rb
@@ -13,7 +13,7 @@ RSpec.describe Admin::RunnerProjectsController do
describe '#create' do
let(:project_id) { project.path }
- subject do
+ subject(:send_create) do
post :create, params: {
namespace_id: group.path,
project_id: project_id,
@@ -25,7 +25,7 @@ RSpec.describe Admin::RunnerProjectsController do
let(:project_runner) { create(:ci_runner, :project, projects: [project]) }
it 'redirects to the admin runner edit page' do
- subject
+ send_create
expect(response).to have_gitlab_http_status(:redirect)
expect(response).to redirect_to edit_admin_runner_url(project_runner)
@@ -37,7 +37,7 @@ RSpec.describe Admin::RunnerProjectsController do
let(:source_project) { create(:project) }
it 'redirects to the admin runner edit page' do
- subject
+ send_create
expect(response).to have_gitlab_http_status(:redirect)
expect(response).to redirect_to edit_admin_runner_url(project_runner)
@@ -50,7 +50,42 @@ RSpec.describe Admin::RunnerProjectsController do
let(:project_id) { 0 }
it 'shows 404 for unknown project' do
- subject
+ send_create
+
+ expect(response).to have_gitlab_http_status(:not_found)
+ end
+ end
+ end
+
+ describe '#destroy' do
+ let_it_be(:project_runner) { create(:ci_runner, :project, projects: [project]) }
+
+ let(:project_id) { project.path }
+
+ subject(:send_destroy) do
+ delete :destroy, params: {
+ namespace_id: group.path,
+ project_id: project_id,
+ id: runner_project_id
+ }
+ end
+
+ context 'unassigning runner from project' do
+ let(:runner_project_id) { project_runner.runner_projects.last.id }
+
+ it 'redirects to the admin runner edit page' do
+ send_destroy
+
+ expect(response).to have_gitlab_http_status(:redirect)
+ expect(response).to redirect_to edit_admin_runner_url(project_runner)
+ end
+ end
+
+ context 'for unknown project runner relationship' do
+ let(:runner_project_id) { 0 }
+
+ it 'shows 404 for unknown project runner relationship' do
+ send_destroy
expect(response).to have_gitlab_http_status(:not_found)
end