diff options
author | Zeger-Jan van de Weg <zegerjan@gitlab.com> | 2017-05-07 22:35:56 +0000 |
---|---|---|
committer | Kamil TrzciĆski <ayufan@ayufan.eu> | 2017-05-07 22:35:56 +0000 |
commit | 8df3997a92bffa2d29f3c559933a336b837cdb93 (patch) | |
tree | 5ee50876b35b6c5fd40607665f72468cfcee51fe /spec/controllers | |
parent | 8a0cde81feb3c8f3af26eefa5cef7b72eda2d266 (diff) | |
download | gitlab-ce-8df3997a92bffa2d29f3c559933a336b837cdb93.tar.gz |
Add Pipeline Schedules that supersedes experimental Trigger Schedule
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/projects/pipeline_schedules_controller_spec.rb | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/spec/controllers/projects/pipeline_schedules_controller_spec.rb b/spec/controllers/projects/pipeline_schedules_controller_spec.rb new file mode 100644 index 00000000000..f8f95dd9bc8 --- /dev/null +++ b/spec/controllers/projects/pipeline_schedules_controller_spec.rb @@ -0,0 +1,87 @@ +require 'spec_helper' + +describe Projects::PipelineSchedulesController do + set(:project) { create(:empty_project, :public) } + let!(:pipeline_schedule) { create(:ci_pipeline_schedule, project: project) } + + describe 'GET #index' do + let(:scope) { nil } + let!(:inactive_pipeline_schedule) do + create(:ci_pipeline_schedule, :inactive, project: project) + end + + it 'renders the index view' do + visit_pipelines_schedules + + expect(response).to have_http_status(:ok) + expect(response).to render_template(:index) + end + + context 'when the scope is set to active' do + let(:scope) { 'active' } + + before do + visit_pipelines_schedules + end + + it 'only shows active pipeline schedules' do + expect(response).to have_http_status(:ok) + expect(assigns(:schedules)).to include(pipeline_schedule) + expect(assigns(:schedules)).not_to include(inactive_pipeline_schedule) + end + end + + def visit_pipelines_schedules + get :index, namespace_id: project.namespace.to_param, project_id: project, scope: scope + end + end + + describe 'GET edit' do + let(:user) { create(:user) } + + before do + project.add_master(user) + + sign_in(user) + end + + it 'loads the pipeline schedule' do + get :edit, namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id + + expect(response).to have_http_status(:ok) + expect(assigns(:schedule)).to eq(pipeline_schedule) + end + end + + describe 'DELETE #destroy' do + set(:user) { create(:user) } + + context 'when a developer makes the request' do + before do + project.add_developer(user) + sign_in(user) + + delete :destroy, namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id + end + + it 'does not delete the pipeline schedule' do + expect(response).not_to have_http_status(:ok) + end + end + + context 'when a master makes the request' do + before do + project.add_master(user) + sign_in(user) + end + + it 'destroys the pipeline schedule' do + expect do + delete :destroy, namespace_id: project.namespace.to_param, project_id: project, id: pipeline_schedule.id + end.to change { project.pipeline_schedules.count }.by(-1) + + expect(response).to have_http_status(302) + end + end + end +end |