diff options
author | Kamil Trzciński <ayufan@ayufan.eu> | 2018-05-07 18:45:42 +0300 |
---|---|---|
committer | Kamil Trzciński <ayufan@ayufan.eu> | 2018-05-07 18:45:42 +0300 |
commit | 8ba7b602c8adc57cff546caaf51527ce49e7da0f (patch) | |
tree | f488ced8b1d3fd98ec22b13116dc6ba96298d6b5 /spec/controllers | |
parent | d0cbef7e8f4faf76b9a528a4629517f29b8c265b (diff) | |
parent | d100396d4bc65114707148216a13b5ab9bc483f7 (diff) |
Merge branch '10244-ux-improvements-for-group-runners' into 'master'
Improve UX For Group Runners
See merge request gitlab-org/gitlab-ce!18649
Diffstat (limited to 'spec/controllers')
-rw-r--r-- | spec/controllers/groups/runners_controller_spec.rb | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/spec/controllers/groups/runners_controller_spec.rb b/spec/controllers/groups/runners_controller_spec.rb new file mode 100644 index 00000000000..6d31b0ce959 --- /dev/null +++ b/spec/controllers/groups/runners_controller_spec.rb @@ -0,0 +1,74 @@ +require 'spec_helper' + +describe Groups::RunnersController do + let(:user) { create(:user) } + let(:group) { create(:group) } + let(:runner) { create(:ci_runner) } + + let(:params) do + { + group_id: group, + id: runner + } + end + + before do + sign_in(user) + group.add_master(user) + group.runners << runner + end + + describe '#update' do + it 'updates the runner and ticks the queue' do + new_desc = runner.description.swapcase + + expect do + post :update, params.merge(runner: { description: new_desc } ) + end.to change { runner.ensure_runner_queue_value } + + runner.reload + + expect(response).to have_gitlab_http_status(302) + expect(runner.description).to eq(new_desc) + end + end + + describe '#destroy' do + it 'destroys the runner' do + delete :destroy, params + + expect(response).to have_gitlab_http_status(302) + expect(Ci::Runner.find_by(id: runner.id)).to be_nil + end + end + + describe '#resume' do + it 'marks the runner as active and ticks the queue' do + runner.update(active: false) + + expect do + post :resume, params + end.to change { runner.ensure_runner_queue_value } + + runner.reload + + expect(response).to have_gitlab_http_status(302) + expect(runner.active).to eq(true) + end + end + + describe '#pause' do + it 'marks the runner as inactive and ticks the queue' do + runner.update(active: true) + + expect do + post :pause, params + end.to change { runner.ensure_runner_queue_value } + + runner.reload + + expect(response).to have_gitlab_http_status(302) + expect(runner.active).to eq(false) + end + end +end |