Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/helpers/clusters_helper_spec.rb')
-rw-r--r--spec/helpers/clusters_helper_spec.rb137
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