From 76d281881a945518fe4565e1dc71f6a3bc28c575 Mon Sep 17 00:00:00 2001 From: Tiger Watson Date: Tue, 26 Mar 2019 09:59:48 +0000 Subject: Allow runners to be installed on group clusters A runner installed on a cluster will now use the cluster's `cluster_type` as its `runner_type`. --- .../clusters/components/applications_spec.js | 2 +- spec/models/clusters/applications/runner_spec.rb | 43 ++++++++++++++++------ .../clusters/applications/create_service_spec.rb | 2 +- 3 files changed, 34 insertions(+), 13 deletions(-) (limited to 'spec') diff --git a/spec/javascripts/clusters/components/applications_spec.js b/spec/javascripts/clusters/components/applications_spec.js index 790e4b9602c..0f8153ad493 100644 --- a/spec/javascripts/clusters/components/applications_spec.js +++ b/spec/javascripts/clusters/components/applications_spec.js @@ -79,7 +79,7 @@ describe('Applications', () => { }); it('renders a row for GitLab Runner', () => { - expect(vm.$el.querySelector('.js-cluster-application-row-runner')).toBeNull(); + expect(vm.$el.querySelector('.js-cluster-application-row-runner')).not.toBeNull(); }); it('renders a row for Jupyter', () => { diff --git a/spec/models/clusters/applications/runner_spec.rb b/spec/models/clusters/applications/runner_spec.rb index 06d9bc076cd..3ce8aa1c7bc 100644 --- a/spec/models/clusters/applications/runner_spec.rb +++ b/spec/models/clusters/applications/runner_spec.rb @@ -64,24 +64,45 @@ describe Clusters::Applications::Runner do end context 'without a runner' do - let(:project) { create(:project) } - let(:cluster) { create(:cluster, :with_installed_helm, projects: [project]) } let(:application) { create(:clusters_applications_runner, runner: nil, cluster: cluster) } + let(:runner) { application.runner } - it 'creates a runner' do - expect do - subject - end.to change { Ci::Runner.count }.by(1) + shared_examples 'runner creation' do + it 'creates a runner' do + expect { subject }.to change { Ci::Runner.count }.by(1) + end + + it 'uses the new runner token' do + expect(values).to match(/runnerToken: '?#{runner.token}/) + end end - it 'uses the new runner token' do - expect(values).to match(/runnerToken: '?#{application.reload.runner.token}/) + context 'project cluster' do + let(:project) { create(:project) } + let(:cluster) { create(:cluster, :with_installed_helm, projects: [project]) } + + include_examples 'runner creation' + + it 'creates a project runner' do + subject + + expect(runner).to be_project_type + expect(runner.projects).to eq [project] + end end - it 'assigns the new runner to runner' do - subject + context 'group cluster' do + let(:group) { create(:group) } + let(:cluster) { create(:cluster, :with_installed_helm, cluster_type: :group_type, groups: [group]) } + + include_examples 'runner creation' + + it 'creates a group runner' do + subject - expect(application.reload.runner).to be_project_type + expect(runner).to be_group_type + expect(runner.groups).to eq [group] + end end end diff --git a/spec/services/clusters/applications/create_service_spec.rb b/spec/services/clusters/applications/create_service_spec.rb index cbdef008b07..20555873503 100644 --- a/spec/services/clusters/applications/create_service_spec.rb +++ b/spec/services/clusters/applications/create_service_spec.rb @@ -150,7 +150,7 @@ describe Clusters::Applications::CreateService do where(:application, :association, :allowed, :pre_create_helm) do 'helm' | :application_helm | true | false 'ingress' | :application_ingress | true | true - 'runner' | :application_runner | false | true + 'runner' | :application_runner | true | true 'jupyter' | :application_jupyter | false | true 'prometheus' | :application_prometheus | false | true end -- cgit v1.2.1