diff options
author | Thong Kuah <tkuah@gitlab.com> | 2018-09-12 12:50:22 +1200 |
---|---|---|
committer | Thong Kuah <tkuah@gitlab.com> | 2018-09-14 16:26:51 +1200 |
commit | 6cba2698f809f6b9e1ae1a2c023d81e2482b2651 (patch) | |
tree | 92b1e7f88155503c223258ea014b6d5eb15a37d1 /spec | |
parent | 0dc9a52adf1d589074c043aacfa24817f2c3fa57 (diff) | |
download | gitlab-ce-6cba2698f809f6b9e1ae1a2c023d81e2482b2651.tar.gz |
Add feature spec when FF is enabled
Diffstat (limited to 'spec')
-rw-r--r-- | spec/features/projects/clusters/gcp_spec.rb | 52 | ||||
-rw-r--r-- | spec/features/projects/clusters/user_spec.rb | 55 |
2 files changed, 61 insertions, 46 deletions
diff --git a/spec/features/projects/clusters/gcp_spec.rb b/spec/features/projects/clusters/gcp_spec.rb index 31e3ebf675d..edc763ad0ad 100644 --- a/spec/features/projects/clusters/gcp_spec.rb +++ b/spec/features/projects/clusters/gcp_spec.rb @@ -33,6 +33,32 @@ describe 'Gcp Cluster', :js do context 'when user filled form with valid parameters' do subject { click_button 'Create Kubernetes cluster' } + shared_examples 'valid cluster gcp form' do + it 'users sees a form with the GCP token' do + expect(page).to have_selector(:css, 'form[data-token="token"]') + end + + it 'user sees a cluster details page and creation status' do + subject + + expect(page).to have_content('Kubernetes cluster is being created on Google Kubernetes Engine...') + + Clusters::Cluster.last.provider.make_created! + + expect(page).to have_content('Kubernetes cluster was successfully created on Google Kubernetes Engine') + end + + it 'user sees a error if something wrong during creation' do + subject + + expect(page).to have_content('Kubernetes cluster is being created on Google Kubernetes Engine...') + + Clusters::Cluster.last.provider.make_errored!('Something wrong!') + + expect(page).to have_content('Something wrong!') + end + end + before do allow_any_instance_of(GoogleApi::CloudPlatform::Client) .to receive(:projects_zones_clusters_create) do @@ -56,28 +82,16 @@ describe 'Gcp Cluster', :js do fill_in 'cluster[provider_gcp_attributes][machine_type]', with: 'n1-standard-2' end - it 'users sees a form with the GCP token' do - expect(page).to have_selector(:css, 'form[data-token="token"]') - end - - it 'user sees a cluster details page and creation status' do - subject - - expect(page).to have_content('Kubernetes cluster is being created on Google Kubernetes Engine...') - - Clusters::Cluster.last.provider.make_created! - - expect(page).to have_content('Kubernetes cluster was successfully created on Google Kubernetes Engine') - end - - it 'user sees a error if something wrong during creation' do - subject + it_behaves_like 'valid cluster gcp form' - expect(page).to have_content('Kubernetes cluster is being created on Google Kubernetes Engine...') + context 'rbac_clusters feature flag is enabled' do + before do + stub_feature_flags(rbac_clusters: true) - Clusters::Cluster.last.provider.make_errored!('Something wrong!') + check 'cluster_provider_gcp_attributes_legacy_abac' + end - expect(page).to have_content('Something wrong!') + it_behaves_like 'valid cluster gcp form' end end diff --git a/spec/features/projects/clusters/user_spec.rb b/spec/features/projects/clusters/user_spec.rb index ec968bfcf7d..00941efc8c8 100644 --- a/spec/features/projects/clusters/user_spec.rb +++ b/spec/features/projects/clusters/user_spec.rb @@ -21,42 +21,43 @@ describe 'User Cluster', :js do end context 'when user filled form with valid parameters' do + shared_examples 'valid cluster user form' do + it 'user sees a cluster details page' do + subject + + expect(page).to have_content('Kubernetes cluster integration') + expect(page.find_field('cluster[name]').value).to eq('dev-cluster') + expect(page.find_field('cluster[platform_kubernetes_attributes][api_url]').value) + .to have_content('http://example.com') + expect(page.find_field('cluster[platform_kubernetes_attributes][token]').value) + .to have_content('my-token') + end + end + before do fill_in 'cluster_name', with: 'dev-cluster' fill_in 'cluster_platform_kubernetes_attributes_api_url', with: 'http://example.com' fill_in 'cluster_platform_kubernetes_attributes_token', with: 'my-token' - click_button 'Add Kubernetes cluster' end - it 'user sees a cluster details page' do - expect(page).to have_content('Kubernetes cluster integration') - expect(page.find_field('cluster[name]').value).to eq('dev-cluster') - expect(page.find_field('cluster[platform_kubernetes_attributes][api_url]').value) - .to have_content('http://example.com') - expect(page.find_field('cluster[platform_kubernetes_attributes][token]').value) - .to have_content('my-token') - end - end + subject { click_button 'Add Kubernetes cluster' } - context 'rbac_clusters feature flag is enabled' do - before do - stub_feature_flags(rbac_clusters: true) + it_behaves_like 'valid cluster user form' - fill_in 'cluster_name', with: 'dev-cluster' - fill_in 'cluster_platform_kubernetes_attributes_api_url', with: 'http://example.com' - fill_in 'cluster_platform_kubernetes_attributes_token', with: 'my-token' - check 'cluster_platform_kubernetes_attributes_authorization_type' - click_button 'Add Kubernetes cluster' - end + context 'rbac_clusters feature flag is enabled' do + before do + stub_feature_flags(rbac_clusters: true) + + check 'cluster_platform_kubernetes_attributes_authorization_type' + end + + it_behaves_like 'valid cluster user form' - it 'user sees a cluster details page' do - expect(page).to have_content('Kubernetes cluster integration') - expect(page.find_field('cluster[name]').value).to eq('dev-cluster') - expect(page.find_field('cluster[platform_kubernetes_attributes][api_url]').value) - .to have_content('http://example.com') - expect(page.find_field('cluster[platform_kubernetes_attributes][token]').value) - .to have_content('my-token') - expect(page.find_field('cluster[platform_kubernetes_attributes][authorization_type]', disabled: true)).to be_checked + it 'user sees a cluster details page with RBAC enabled' do + subject + + expect(page.find_field('cluster[platform_kubernetes_attributes][authorization_type]', disabled: true)).to be_checked + end end end |