diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-10 18:07:43 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-01-10 18:07:43 +0000 |
commit | 6f0f893bd87535b61e0ecb1ce069eaa7fcb9e5be (patch) | |
tree | 8af92b29c838e9af2fd70f9a4a2314a08f4af922 /spec/lib | |
parent | 8b1228b0d409d7751f01d9fb72ebfbbf62399486 (diff) | |
download | gitlab-ce-6f0f893bd87535b61e0ecb1ce069eaa7fcb9e5be.tar.gz |
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
3 files changed, 112 insertions, 0 deletions
diff --git a/spec/lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications_spec.rb b/spec/lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications_spec.rb new file mode 100644 index 00000000000..9d9281f4e98 --- /dev/null +++ b/spec/lib/gitlab/background_migration/activate_prometheus_services_for_shared_cluster_applications_spec.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require 'spec_helper' + +describe Gitlab::BackgroundMigration::ActivatePrometheusServicesForSharedClusterApplications, :migration, schema: 2019_12_20_102807 do + include MigrationHelpers::PrometheusServiceHelpers + + let(:namespaces) { table(:namespaces) } + let(:projects) { table(:projects) } + let(:services) { table(:services) } + let(:namespace) { namespaces.create(name: 'user', path: 'user') } + let(:project) { projects.create(namespace_id: namespace.id) } + + let(:columns) do + %w(project_id active properties type template push_events + issues_events merge_requests_events tag_push_events + note_events category default wiki_page_events pipeline_events + confidential_issues_events commit_events job_events + confidential_note_events deployment_events) + end + + describe '#perform' do + it 'is idempotent' do + expect { subject.perform(project.id) }.to change { services.order(:id).map { |row| row.attributes } } + + expect { subject.perform(project.id) }.not_to change { services.order(:id).map { |row| row.attributes } } + end + + context 'non prometheus services' do + it 'does not change them' do + other_type = 'SomeOtherService' + services.create(service_params_for(project.id, active: true, type: other_type)) + + expect { subject.perform(project.id) }.not_to change { services.where(type: other_type).order(:id).map { |row| row.attributes } } + end + end + + context 'prometheus services are configured manually ' do + it 'does not change them' do + properties = '{"api_url":"http://test.dev","manual_configuration":"1"}' + services.create(service_params_for(project.id, properties: properties, active: false)) + + expect { subject.perform(project.id) }.not_to change { services.order(:id).map { |row| row.attributes } } + end + end + + context 'prometheus integration services do not exist' do + it 'creates missing services entries' do + subject.perform(project.id) + + rows = services.order(:id).map { |row| row.attributes.slice(*columns).symbolize_keys } + + expect([service_params_for(project.id, active: true)]).to eq rows + end + end + + context 'prometheus integration services exist' do + context 'in active state' do + it 'does not change them' do + services.create(service_params_for(project.id, active: true)) + + expect { subject.perform(project.id) }.not_to change { services.order(:id).map { |row| row.attributes } } + end + end + + context 'not in active state' do + it 'sets active attribute to true' do + service = services.create(service_params_for(project.id)) + + expect { subject.perform(project.id) }.to change { service.reload.active? }.from(false).to(true) + end + end + end + end +end diff --git a/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb b/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb index dae5b028c15..4d12d05211b 100644 --- a/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb +++ b/spec/lib/gitlab/import_export/project_tree_restorer_spec.rb @@ -219,6 +219,16 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do expect(award_emoji.map(&:name)).to contain_exactly('thumbsup', 'coffee') end + it 'snippet has notes' do + expect(@project.snippets.first.notes.count).to eq(1) + end + + it 'snippet has award emojis on notes' do + award_emoji = @project.snippets.first.notes.first.award_emoji.first + + expect(award_emoji.name).to eq('thumbsup') + end + it 'restores `ci_cd_settings` : `group_runners_enabled` setting' do expect(@project.ci_cd_settings.group_runners_enabled?).to eq(false) end @@ -240,6 +250,18 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do expect(sentry_issue.sentry_issue_identifier).to eq(1234567891) end + it 'has award emoji for an issue' do + award_emoji = @project.issues.first.award_emoji.first + + expect(award_emoji.name).to eq('musical_keyboard') + end + + it 'has award emoji for a note in an issue' do + award_emoji = @project.issues.first.notes.first.award_emoji.first + + expect(award_emoji.name).to eq('clapper') + end + it 'restores container_expiration_policy' do policy = Project.find_by_path('project').container_expiration_policy @@ -266,6 +288,20 @@ describe Gitlab::ImportExport::ProjectTreeRestorer do it 'has no source if source/target differ' do expect(MergeRequest.find_by_title('MR2').source_project_id).to be_nil end + + it 'has award emoji' do + award_emoji = MergeRequest.find_by_title('MR1').award_emoji + + expect(award_emoji.map(&:name)).to contain_exactly('thumbsup', 'drum') + end + + context 'notes' do + it 'has award emoji' do + award_emoji = MergeRequest.find_by_title('MR1').notes.first.award_emoji.first + + expect(award_emoji.name).to eq('tada') + end + end end context 'tokens are regenerated' do diff --git a/spec/lib/sentry/client/issue_spec.rb b/spec/lib/sentry/client/issue_spec.rb index f4796a27b4d..e10d27e4342 100644 --- a/spec/lib/sentry/client/issue_spec.rb +++ b/spec/lib/sentry/client/issue_spec.rb @@ -263,6 +263,7 @@ describe Sentry::Client::Issue do :last_release_last_commit | [:lastRelease, :lastCommit] :first_release_short_version | [:firstRelease, :shortVersion] :last_release_short_version | [:lastRelease, :shortVersion] + :first_release_version | [:firstRelease, :version] end with_them do |