diff options
Diffstat (limited to 'spec/helpers/clusters_helper_spec.rb')
-rw-r--r-- | spec/helpers/clusters_helper_spec.rb | 137 |
1 files changed, 85 insertions, 52 deletions
diff --git a/spec/helpers/clusters_helper_spec.rb b/spec/helpers/clusters_helper_spec.rb index 18d233fcd63..53d33f2875f 100644 --- a/spec/helpers/clusters_helper_spec.rb +++ b/spec/helpers/clusters_helper_spec.rb @@ -31,34 +31,6 @@ RSpec.describe ClustersHelper do end end - describe '#create_new_cluster_label' do - subject { helper.create_new_cluster_label(provider: provider) } - - context 'GCP provider' do - let(:provider) { 'gcp' } - - it { is_expected.to eq('Create new cluster on GKE') } - end - - context 'AWS provider' do - let(:provider) { 'aws' } - - it { is_expected.to eq('Create new cluster on EKS') } - end - - context 'other provider' do - let(:provider) { 'other' } - - it { is_expected.to eq('Create new cluster') } - end - - context 'no provider' do - let(:provider) { nil } - - it { is_expected.to eq('Create new cluster') } - end - end - describe '#js_clusters_list_data' do let_it_be(:current_user) { create(:user) } let_it_be(:project) { build(:project) } @@ -66,6 +38,11 @@ RSpec.describe ClustersHelper do subject { helper.js_clusters_list_data(clusterable) } + before do + helper.send(:default_branch_name, clusterable) + helper.send(:clusterable_project_path, clusterable) + end + it 'displays endpoint path' do expect(subject[:endpoint]).to eq("#{project_path(project)}/-/clusters.json") end @@ -86,10 +63,31 @@ RSpec.describe ClustersHelper do it 'displays empty image path' do expect(subject[:clusters_empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-clusters|svg)) + expect(subject[:empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-agents|svg)) end it 'displays create cluster using certificate path' do - expect(subject[:new_cluster_path]).to eq("#{project_path(project)}/-/clusters/new?tab=create") + expect(subject[:new_cluster_path]).to eq("#{project_path(project)}/-/clusters/new") + end + + it 'displays add cluster using certificate path' do + expect(subject[:add_cluster_path]).to eq("#{project_path(project)}/-/clusters/connect") + end + + it 'displays project default branch' do + expect(subject[:default_branch_name]).to eq(project.default_branch) + end + + it 'displays project path' do + expect(subject[:project_path]).to eq(project.full_path) + end + + it 'displays kas address' do + expect(subject[:kas_address]).to eq(Gitlab::Kas.external_url) + end + + it 'displays GitLab version' do + expect(subject[:gitlab_version]).to eq(Gitlab.version_info) end context 'user has no permissions to create a cluster' do @@ -114,6 +112,10 @@ RSpec.describe ClustersHelper do it 'doesn\'t display empty state help text' do expect(subject[:empty_state_help_text]).to be_nil end + + it 'displays display_cluster_agents as true' do + expect(subject[:display_cluster_agents]).to eq("true") + end end context 'group cluster' do @@ -123,38 +125,40 @@ RSpec.describe ClustersHelper do it 'displays empty state help text' do expect(subject[:empty_state_help_text]).to eq(s_('ClusterIntegration|Adding an integration to your group will share the cluster across all your projects.')) end - end - end - describe '#js_clusters_data' do - let_it_be(:current_user) { create(:user) } - let_it_be(:project) { build(:project) } - let_it_be(:clusterable) { ClusterablePresenter.fabricate(project, current_user: current_user) } + it 'displays display_cluster_agents as false' do + expect(subject[:display_cluster_agents]).to eq("false") + end - subject { helper.js_clusters_data(clusterable) } + it 'does not include a default branch' do + expect(subject[:default_branch_name]).to be_nil + end - it 'displays project default branch' do - expect(subject[:default_branch_name]).to eq(project.default_branch) + it 'does not include a project path' do + expect(subject[:project_path]).to be_nil + end end - it 'displays image path' do - expect(subject[:empty_state_image]).to match(%r(/illustrations/empty-state/empty-state-agents|svg)) - end + describe 'certificate based clusters enabled' do + before do + stub_feature_flags(certificate_based_clusters: flag_enabled) + end - it 'displays project path' do - expect(subject[:project_path]).to eq(project.full_path) - end + context 'feature flag is enabled' do + let(:flag_enabled) { true } - it 'displays add cluster using certificate path' do - expect(subject[:add_cluster_path]).to eq("#{project_path(project)}/-/clusters/new?tab=add") - end + it do + expect(subject[:certificate_based_clusters_enabled]).to eq('true') + end + end - it 'displays kas address' do - expect(subject[:kas_address]).to eq(Gitlab::Kas.external_url) - end + context 'feature flag is disabled' do + let(:flag_enabled) { false } - it 'displays GitLab version' do - expect(subject[:gitlab_version]).to eq(Gitlab.version_info) + it do + expect(subject[:certificate_based_clusters_enabled]).to eq('false') + end + end end end @@ -220,4 +224,33 @@ RSpec.describe ClustersHelper do end end end + + describe '#default_branch_name' do + subject { default_branch_name(clusterable) } + + context 'when clusterable is a project without a repository' do + let(:clusterable) { build(:project) } + + it 'allows default branch name to display default name from settings' do + expect(subject).to eq(Gitlab::CurrentSettings.default_branch_name) + end + end + + context 'when clusterable is a project with a repository' do + let(:clusterable) { build(:project, :repository) } + let(:repository) { clusterable.repository } + + it 'allows default branch name to display repository root branch' do + expect(subject).to eq(repository.root_ref) + end + end + + context 'when clusterable is a group' do + let(:clusterable) { build(:group) } + + it 'does not allow default branch name to display' do + expect(subject).to be_nil + end + end + end end |