From 141902c04943d5fb43c014b8cf42af60a3bc0cdf Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Thu, 9 Apr 2020 18:09:34 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- .../groups/shared_projects_controller_spec.rb | 2 +- spec/factories/group_group_links.rb | 8 ++++- spec/factories/project_group_links.rb | 5 +++ spec/factories/usage_data.rb | 4 ++- spec/finders/group_descendants_finder_spec.rb | 2 +- .../jira_import/components/jira_import_app_spec.js | 38 ++++++++++++++++++++++ .../components/jira_import_setup_spec.js | 28 ++++++++++++++++ spec/lib/gitlab/usage_data_spec.rb | 10 +++--- spec/models/clusters/cluster_spec.rb | 16 +++++++++ spec/models/group_group_link_spec.rb | 16 +++++++++ spec/models/project_group_link_spec.rb | 17 ++++++++++ spec/requests/api/internal/base_spec.rb | 2 +- spec/support/helpers/usage_data_helpers.rb | 3 ++ .../blob_replicator_strategy_shared_examples.rb | 1 + 14 files changed, 143 insertions(+), 9 deletions(-) create mode 100644 spec/frontend/jira_import/components/jira_import_app_spec.js create mode 100644 spec/frontend/jira_import/components/jira_import_setup_spec.js (limited to 'spec') diff --git a/spec/controllers/groups/shared_projects_controller_spec.rb b/spec/controllers/groups/shared_projects_controller_spec.rb index a4b2efa7c43..a31b5682ae0 100644 --- a/spec/controllers/groups/shared_projects_controller_spec.rb +++ b/spec/controllers/groups/shared_projects_controller_spec.rb @@ -13,7 +13,7 @@ describe Groups::SharedProjectsController do Projects::GroupLinks::CreateService.new( project, user, - link_group_access: ProjectGroupLink::DEVELOPER + link_group_access: Gitlab::Access::DEVELOPER ).execute(group) end diff --git a/spec/factories/group_group_links.rb b/spec/factories/group_group_links.rb index 0711a15b8dd..6f98886faff 100644 --- a/spec/factories/group_group_links.rb +++ b/spec/factories/group_group_links.rb @@ -4,6 +4,12 @@ FactoryBot.define do factory :group_group_link do shared_group { create(:group) } shared_with_group { create(:group) } - group_access { GroupMember::DEVELOPER } + group_access { Gitlab::Access::DEVELOPER } + + trait(:guest) { group_access { Gitlab::Access::GUEST } } + trait(:reporter) { group_access { Gitlab::Access::REPORTER } } + trait(:developer) { group_access { Gitlab::Access::DEVELOPER } } + trait(:owner) { group_access { Gitlab::Access::OWNER } } + trait(:maintainer) { group_access { Gitlab::Access::MAINTAINER } } end end diff --git a/spec/factories/project_group_links.rb b/spec/factories/project_group_links.rb index 3c8c7a34680..b9119a5788b 100644 --- a/spec/factories/project_group_links.rb +++ b/spec/factories/project_group_links.rb @@ -5,5 +5,10 @@ FactoryBot.define do project group expires_at { nil } + + trait(:guest) { group_access { Gitlab::Access::GUEST } } + trait(:reporter) { group_access { Gitlab::Access::REPORTER } } + trait(:developer) { group_access { Gitlab::Access::DEVELOPER } } + trait(:maintainer) { group_access { Gitlab::Access::MAINTAINER } } end end diff --git a/spec/factories/usage_data.rb b/spec/factories/usage_data.rb index da69a0fb844..b633038b83b 100644 --- a/spec/factories/usage_data.rb +++ b/spec/factories/usage_data.rb @@ -39,12 +39,14 @@ FactoryBot.define do gcp_cluster = create(:cluster_provider_gcp, :created).cluster create(:cluster_provider_aws, :created) create(:cluster_platform_kubernetes) + create(:cluster, :management_project, management_project: projects[0]) create(:cluster, :group) + create(:cluster, :instance, :production_environment) # Disabled clusters create(:cluster, :disabled) create(:cluster, :group, :disabled) - create(:cluster, :group, :disabled) + create(:cluster, :instance, :disabled) # Applications create(:clusters_applications_helm, :installed, cluster: gcp_cluster) diff --git a/spec/finders/group_descendants_finder_spec.rb b/spec/finders/group_descendants_finder_spec.rb index 8d3564ca3c0..a08772c6e7e 100644 --- a/spec/finders/group_descendants_finder_spec.rb +++ b/spec/finders/group_descendants_finder_spec.rb @@ -123,7 +123,7 @@ describe GroupDescendantsFinder do project = create(:project, namespace: group) other_project = create(:project) other_project.project_group_links.create(group: group, - group_access: ProjectGroupLink::MAINTAINER) + group_access: Gitlab::Access::MAINTAINER) expect(finder.execute).to contain_exactly(project) end diff --git a/spec/frontend/jira_import/components/jira_import_app_spec.js b/spec/frontend/jira_import/components/jira_import_app_spec.js new file mode 100644 index 00000000000..fb3ffe1ede3 --- /dev/null +++ b/spec/frontend/jira_import/components/jira_import_app_spec.js @@ -0,0 +1,38 @@ +import { shallowMount } from '@vue/test-utils'; +import JiraImportApp from '~/jira_import/components/jira_import_app.vue'; +import JiraImportSetup from '~/jira_import/components/jira_import_setup.vue'; + +describe('JiraImportApp', () => { + let wrapper; + + afterEach(() => { + wrapper.destroy(); + wrapper = null; + }); + + describe('set up Jira integration page', () => { + beforeEach(() => { + wrapper = shallowMount(JiraImportApp, { + propsData: { + isJiraConfigured: true, + projectPath: 'gitlab-org/gitlab-test', + setupIllustration: 'illustration.svg', + }, + }); + }); + + it('is shown when Jira integration is not configured', () => { + wrapper.setProps({ + isJiraConfigured: false, + }); + + return wrapper.vm.$nextTick(() => { + expect(wrapper.find(JiraImportSetup).exists()).toBe(true); + }); + }); + + it('is not shown when Jira integration is configured', () => { + expect(wrapper.find(JiraImportSetup).exists()).toBe(false); + }); + }); +}); diff --git a/spec/frontend/jira_import/components/jira_import_setup_spec.js b/spec/frontend/jira_import/components/jira_import_setup_spec.js new file mode 100644 index 00000000000..27366bd7e8a --- /dev/null +++ b/spec/frontend/jira_import/components/jira_import_setup_spec.js @@ -0,0 +1,28 @@ +import { shallowMount } from '@vue/test-utils'; +import JiraImportSetup from '~/jira_import/components/jira_import_setup.vue'; + +describe('JiraImportSetup', () => { + let wrapper; + + beforeEach(() => { + wrapper = shallowMount(JiraImportSetup, { + propsData: { + illustration: 'illustration.svg', + }, + }); + }); + + afterEach(() => { + wrapper.destroy(); + wrapper = null; + }); + + it('displays a message to the user', () => { + const message = 'You will first need to set up Jira Integration to use this feature.'; + expect(wrapper.find('p').text()).toBe(message); + }); + + it('contains button to set up Jira integration', () => { + expect(wrapper.find('a').text()).toBe('Set up Jira Integration'); + }); +}); diff --git a/spec/lib/gitlab/usage_data_spec.rb b/spec/lib/gitlab/usage_data_spec.rb index 12199bc6d5a..9457e2cd549 100644 --- a/spec/lib/gitlab/usage_data_spec.rb +++ b/spec/lib/gitlab/usage_data_spec.rb @@ -58,13 +58,14 @@ describe Gitlab::UsageData, :aggregate_failures do expect(count_data[:issues_with_embedded_grafana_charts_approx]).to eq(2) expect(count_data[:incident_issues]).to eq(4) - expect(count_data[:clusters_enabled]).to eq(4) - expect(count_data[:project_clusters_enabled]).to eq(3) + expect(count_data[:clusters_enabled]).to eq(6) + expect(count_data[:project_clusters_enabled]).to eq(4) expect(count_data[:group_clusters_enabled]).to eq(1) + expect(count_data[:instance_clusters_enabled]).to eq(1) expect(count_data[:clusters_disabled]).to eq(3) expect(count_data[:project_clusters_disabled]).to eq(1) - expect(count_data[:group_clusters_disabled]).to eq(2) - expect(count_data[:group_clusters_enabled]).to eq(1) + expect(count_data[:group_clusters_disabled]).to eq(1) + expect(count_data[:instance_clusters_disabled]).to eq(1) expect(count_data[:clusters_platforms_eks]).to eq(1) expect(count_data[:clusters_platforms_gke]).to eq(1) expect(count_data[:clusters_platforms_user]).to eq(1) @@ -78,6 +79,7 @@ describe Gitlab::UsageData, :aggregate_failures do expect(count_data[:clusters_applications_elastic_stack]).to eq(1) expect(count_data[:grafana_integrated_projects]).to eq(2) expect(count_data[:clusters_applications_jupyter]).to eq(1) + expect(count_data[:clusters_management_project]).to eq(1) end it 'works when queries time out' do diff --git a/spec/models/clusters/cluster_spec.rb b/spec/models/clusters/cluster_spec.rb index 8685838fdde..29c75186110 100644 --- a/spec/models/clusters/cluster_spec.rb +++ b/spec/models/clusters/cluster_spec.rb @@ -156,6 +156,22 @@ describe Clusters::Cluster, :use_clean_rails_memory_store_caching do end end + describe '.with_management_project' do + subject { described_class.with_management_project } + + context 'cluster has a management project' do + let!(:cluster) { create(:cluster, :management_project) } + + it { is_expected.to include(cluster) } + end + + context 'cluster does not have a management project' do + let!(:cluster) { create(:cluster) } + + it { is_expected.not_to include(cluster) } + end + end + describe '.for_project_namespace' do subject { described_class.for_project_namespace(namespace_id) } diff --git a/spec/models/group_group_link_spec.rb b/spec/models/group_group_link_spec.rb index a877cc803dd..1fbd399e82b 100644 --- a/spec/models/group_group_link_spec.rb +++ b/spec/models/group_group_link_spec.rb @@ -15,6 +15,22 @@ describe GroupGroupLink do it { is_expected.to belong_to(:shared_with_group) } end + describe 'scopes' do + describe '.non_guests' do + let!(:group_group_link_reporter) { create :group_group_link, :reporter } + let!(:group_group_link_maintainer) { create :group_group_link, :maintainer } + let!(:group_group_link_owner) { create :group_group_link, :owner } + let!(:group_group_link_guest) { create :group_group_link, :guest } + + it 'returns all records which are greater than Guests access' do + expect(described_class.non_guests).to match_array([ + group_group_link_reporter, group_group_link, + group_group_link_maintainer, group_group_link_owner + ]) + end + end + end + describe 'validation' do it { is_expected.to validate_presence_of(:shared_group) } diff --git a/spec/models/project_group_link_spec.rb b/spec/models/project_group_link_spec.rb index 63ce08c4d30..9c51180b55b 100644 --- a/spec/models/project_group_link_spec.rb +++ b/spec/models/project_group_link_spec.rb @@ -32,6 +32,23 @@ describe ProjectGroupLink do end end + describe 'scopes' do + describe '.non_guests' do + let!(:project_group_link_reporter) { create :project_group_link, :reporter } + let!(:project_group_link_maintainer) { create :project_group_link, :maintainer } + let!(:project_group_link_developer) { create :project_group_link } + let!(:project_group_link_guest) { create :project_group_link, :guest } + + it 'returns all records which are greater than Guests access' do + expect(described_class.non_guests).to match_array([ + project_group_link_reporter, + project_group_link_developer, + project_group_link_maintainer + ]) + end + end + end + describe "destroying a record", :delete do it "refreshes group users' authorized projects" do project = create(:project, :private) diff --git a/spec/requests/api/internal/base_spec.rb b/spec/requests/api/internal/base_spec.rb index 0629d51154b..dc75fdab639 100644 --- a/spec/requests/api/internal/base_spec.rb +++ b/spec/requests/api/internal/base_spec.rb @@ -582,7 +582,7 @@ describe API::Internal::Base do { 'action' => 'geo_proxy_to_primary', 'data' => { - 'api_endpoints' => %w{geo/proxy_git_push_ssh/info_refs geo/proxy_git_push_ssh/push}, + 'api_endpoints' => %w{geo/proxy_git_ssh/info_refs_receive_pack geo/proxy_git_ssh/receive_pack}, 'gl_username' => 'testuser', 'primary_repo' => 'http://localhost:3000/testuser/repo.git' } diff --git a/spec/support/helpers/usage_data_helpers.rb b/spec/support/helpers/usage_data_helpers.rb index 4d63cf12575..eff252ddda0 100644 --- a/spec/support/helpers/usage_data_helpers.rb +++ b/spec/support/helpers/usage_data_helpers.rb @@ -43,9 +43,11 @@ module UsageDataHelpers clusters_enabled project_clusters_enabled group_clusters_enabled + instance_clusters_enabled clusters_disabled project_clusters_disabled group_clusters_disabled + instance_clusters_disabled clusters_platforms_eks clusters_platforms_gke clusters_platforms_user @@ -58,6 +60,7 @@ module UsageDataHelpers clusters_applications_knative clusters_applications_elastic_stack clusters_applications_jupyter + clusters_management_project in_review_folder grafana_integrated_projects groups diff --git a/spec/support/shared_examples/models/concerns/blob_replicator_strategy_shared_examples.rb b/spec/support/shared_examples/models/concerns/blob_replicator_strategy_shared_examples.rb index 62b1b5791dc..8372ee9ac4a 100644 --- a/spec/support/shared_examples/models/concerns/blob_replicator_strategy_shared_examples.rb +++ b/spec/support/shared_examples/models/concerns/blob_replicator_strategy_shared_examples.rb @@ -52,6 +52,7 @@ RSpec.shared_examples 'a blob replicator' do replicator.calculate_checksum! expect(model_record.reload.verification_checksum).not_to be_nil + expect(model_record.reload.verified_at).not_to be_nil end it 'saves the error message and increments retry counter' do -- cgit v1.2.1