spec/features/projects/clusters_spec. Fix static analysys
This commit is contained in:
parent
fe135fac68
commit
44baf2b0f4
4 changed files with 114 additions and 3 deletions
|
@ -4,7 +4,7 @@
|
|||
.col-sm-8
|
||||
= render 'header'
|
||||
.row
|
||||
.col-sm-8.col-sm-offset-4
|
||||
.col-sm-8.col-sm-offset-4.signin-with-google
|
||||
- if @authorize_url
|
||||
= link_to @authorize_url do
|
||||
= image_tag('auth_buttons/signin_with_google.png')
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
%label{ for: 'cluter_name' }
|
||||
= s_('ClusterIntegration|Cluster name')
|
||||
.input-group
|
||||
%input.form-control{ value: @cluster.gcp_cluster_name, disabled: true}
|
||||
%input.form-control.cluster-name{ value: @cluster.gcp_cluster_name, disabled: true}
|
||||
%span.input-group-addon.clipboard-addon
|
||||
= clipboard_button(text: @cluster.gcp_cluster_name, title: s_('ClusterIntegration|Copy cluster name'))
|
||||
|
||||
|
|
|
@ -4,7 +4,7 @@ describe GoogleApi::AuthorizationsController do
|
|||
describe 'GET|POST #callback' do
|
||||
let(:user) { create(:user) }
|
||||
let(:project) { create(:project) }
|
||||
let(:state) { namespace_project_clusters_url(project.namespace, project).to_s }
|
||||
let(:state) { project_clusters_url(project).to_s }
|
||||
let(:token) { 'token' }
|
||||
let(:expires_at) { 1.hour.since.strftime('%s') }
|
||||
|
||||
|
|
111
spec/features/projects/clusters_spec.rb
Normal file
111
spec/features/projects/clusters_spec.rb
Normal file
|
@ -0,0 +1,111 @@
|
|||
require 'spec_helper'
|
||||
|
||||
feature 'Clusters', :js do
|
||||
let!(:project) { create(:project, :repository) }
|
||||
let!(:user) { create(:user) }
|
||||
|
||||
before do
|
||||
project.add_master(user)
|
||||
gitlab_sign_in(user)
|
||||
end
|
||||
|
||||
context 'when user has signed in Google' do
|
||||
before do
|
||||
allow_any_instance_of(GoogleApi::CloudPlatform::Client)
|
||||
.to receive(:validate_token).and_return(true)
|
||||
end
|
||||
|
||||
context 'when user does not have a cluster and visits cluster index page' do
|
||||
before do
|
||||
visit project_clusters_path(project)
|
||||
end
|
||||
|
||||
it 'user sees a new page' do
|
||||
expect(page).to have_button('Create cluster')
|
||||
end
|
||||
|
||||
context 'when user filled form with valid parameters' do
|
||||
before do
|
||||
double.tap do |dbl|
|
||||
allow(dbl).to receive(:status).and_return('RUNNING')
|
||||
allow(dbl).to receive(:self_link)
|
||||
.and_return('projects/gcp-project-12345/zones/us-central1-a/operations/ope-123')
|
||||
allow_any_instance_of(GoogleApi::CloudPlatform::Client)
|
||||
.to receive(:projects_zones_clusters_create).and_return(dbl)
|
||||
end
|
||||
|
||||
allow(WaitForClusterCreationWorker).to receive(:perform_in).and_return(nil)
|
||||
|
||||
fill_in 'cluster_gcp_project_id', with: 'gcp-project-123'
|
||||
fill_in 'cluster_gcp_cluster_name', with: 'dev-cluster'
|
||||
click_button 'Create cluster'
|
||||
end
|
||||
|
||||
it 'user sees a cluster details page and creation status' do
|
||||
expect(page).to have_content('Cluster is being created on Google Container Engine...')
|
||||
|
||||
Gcp::Cluster.last.make_created!
|
||||
|
||||
expect(page).to have_content('Cluster was successfully created on Google Container Engine.')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user filled form with invalid parameters' do
|
||||
before do
|
||||
click_button 'Create cluster'
|
||||
end
|
||||
|
||||
it 'user sees a validation error' do
|
||||
expect(page).to have_css('#error_explanation')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user has a cluster and visits cluster index page' do
|
||||
let!(:cluster) { create(:gcp_cluster, :created_on_gke, :with_kubernetes_service, project: project) }
|
||||
|
||||
before do
|
||||
visit project_clusters_path(project)
|
||||
end
|
||||
|
||||
it 'user sees an cluster details page' do
|
||||
expect(page).to have_button('Save changes')
|
||||
expect(page.find(:css, '.cluster-name').value).to eq(cluster.gcp_cluster_name)
|
||||
end
|
||||
|
||||
context 'when user disables the cluster' do
|
||||
before do
|
||||
page.find(:css, '.js-toggle-cluster').click
|
||||
click_button 'Save changes'
|
||||
end
|
||||
|
||||
it 'user sees the succeccful message' do
|
||||
expect(page).to have_content('Cluster was successfully updated.')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user destory the cluster' do
|
||||
before do
|
||||
page.accept_confirm do
|
||||
click_link 'Remove integration'
|
||||
end
|
||||
end
|
||||
|
||||
it 'user sees creation form with the succeccful message' do
|
||||
expect(page).to have_content('Cluster was successfully removed.')
|
||||
expect(page).to have_button('Create cluster')
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when user has not signed in Google' do
|
||||
before do
|
||||
visit project_clusters_path(project)
|
||||
end
|
||||
|
||||
it 'user sees a login page' do
|
||||
expect(page).to have_css('.signin-with-google')
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Reference in a new issue