diff options
90 files changed, 191 insertions, 137 deletions
diff --git a/.rubocop.yml b/.rubocop.yml index da3707972d3..91c7aa53fb7 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -301,12 +301,6 @@ RSpec/AnyInstanceOf: Enabled: false # Cops for upgrade to gitlab-styles 3.1.0 -FactoryBot/FactoryClassName: - Enabled: false - -FactoryBot/CreateList: - Enabled: false - Rails/SafeNavigationWithBlank: Enabled: false diff --git a/app/assets/javascripts/lib/utils/datetime_utility.js b/app/assets/javascripts/lib/utils/datetime_utility.js index 0ffb31b323b..fd9a13be18b 100644 --- a/app/assets/javascripts/lib/utils/datetime_utility.js +++ b/app/assets/javascripts/lib/utils/datetime_utility.js @@ -555,6 +555,16 @@ export const calculateRemainingMilliseconds = endDate => { export const getDateInPast = (date, daysInPast) => new Date(newDate(date).setDate(date.getDate() - daysInPast)); +/** + * Adds a given number of days to a given date and returns the new date. + * + * @param {Date} date the date that we will add days to + * @param {Number} daysInFuture number of days that are added to a given date + * @returns {Date} Date in future as Date object + */ +export const getDateInFuture = (date, daysInFuture) => + new Date(newDate(date).setDate(date.getDate() + daysInFuture)); + /* * Appending T00:00:00 makes JS assume local time and prevents it from shifting the date * to match the user's time zone. We want to display the date in server time for now, to diff --git a/app/assets/stylesheets/snippets.scss b/app/assets/stylesheets/snippets.scss index bd777c66b56..dcdb195518c 100644 --- a/app/assets/stylesheets/snippets.scss +++ b/app/assets/stylesheets/snippets.scss @@ -48,9 +48,6 @@ padding: 10px; border: 0; border-radius: 0; - font-family: $monospace-font; - font-size: $code-font-size; - line-height: $code-line-height; margin: 0; overflow: auto; overflow-y: hidden; @@ -58,6 +55,12 @@ word-wrap: normal; border-left: $border-style; } + + code { + font-family: $monospace-font; + font-size: $code-font-size; + line-height: $code-line-height; + } } .line-numbers { diff --git a/app/mailers/emails/projects.rb b/app/mailers/emails/projects.rb index 6274879ee99..5c957437039 100644 --- a/app/mailers/emails/projects.rb +++ b/app/mailers/emails/projects.rb @@ -51,7 +51,7 @@ module Emails add_project_headers headers['X-GitLab-Author'] = @message.author_username - mail(from: sender(@message.author_id, @message.send_from_committer_email?), + mail(from: sender(@message.author_id, send_from_user_email: @message.send_from_committer_email?), reply_to: @message.reply_to, subject: @message.subject) end diff --git a/app/mailers/notify.rb b/app/mailers/notify.rb index c7cfefeec9b..92939136de2 100644 --- a/app/mailers/notify.rb +++ b/app/mailers/notify.rb @@ -59,11 +59,11 @@ class Notify < BaseMailer # Return an email address that displays the name of the sender. # Only the displayed name changes; the actual email address is always the same. - def sender(sender_id, send_from_user_email = false) + def sender(sender_id, send_from_user_email: false, sender_name: nil) return unless sender = User.find(sender_id) address = default_sender_address - address.display_name = sender.name + address.display_name = sender_name.presence || sender.name if send_from_user_email && can_send_from_user_email?(sender) address.address = sender.email diff --git a/app/models/ci/job_artifact.rb b/app/models/ci/job_artifact.rb index 9e5aa6691df..72be53c7af0 100644 --- a/app/models/ci/job_artifact.rb +++ b/app/models/ci/job_artifact.rb @@ -23,7 +23,7 @@ module Ci container_scanning: 'gl-container-scanning-report.json', dast: 'gl-dast-report.json', license_management: 'gl-license-management-report.json', - license_scanning: 'gl-license-management-report.json', + license_scanning: 'gl-license-scanning-report.json', performance: 'performance.json', metrics: 'metrics.txt' }.freeze diff --git a/app/services/issuable/clone/attributes_rewriter.rb b/app/services/issuable/clone/attributes_rewriter.rb index 1f5d83917cc..334e50c0be5 100644 --- a/app/services/issuable/clone/attributes_rewriter.rb +++ b/app/services/issuable/clone/attributes_rewriter.rb @@ -18,6 +18,7 @@ module Issuable new_entity.update(update_attributes) copy_resource_label_events + copy_resource_weight_events end private @@ -60,6 +61,20 @@ module Issuable end end + def copy_resource_weight_events + return unless original_entity.respond_to?(:resource_weight_events) + + original_entity.resource_weight_events.find_in_batches do |batch| + events = batch.map do |event| + event.attributes + .except('id', 'reference', 'reference_html') + .merge('issue_id' => new_entity.id) + end + + Gitlab::Database.bulk_insert(ResourceWeightEvent.table_name, events) + end + end + def entity_key new_entity.class.name.parameterize('_').foreign_key end diff --git a/app/models/concerns/worker_attributes.rb b/app/workers/concerns/worker_attributes.rb index 506215ca9ed..506215ca9ed 100644 --- a/app/models/concerns/worker_attributes.rb +++ b/app/workers/concerns/worker_attributes.rb diff --git a/changelogs/unreleased/33596-package-ci-package-pipeline-api.yml b/changelogs/unreleased/33596-package-ci-package-pipeline-api.yml new file mode 100644 index 00000000000..3e5eb961e95 --- /dev/null +++ b/changelogs/unreleased/33596-package-ci-package-pipeline-api.yml @@ -0,0 +1,5 @@ +--- +title: Add build metadata to package API +merge_request: 20682 +author: +type: added diff --git a/changelogs/unreleased/add-get-date-in-future-util.yml b/changelogs/unreleased/add-get-date-in-future-util.yml new file mode 100644 index 00000000000..c9520c2416e --- /dev/null +++ b/changelogs/unreleased/add-get-date-in-future-util.yml @@ -0,0 +1,5 @@ +--- +title: Add getDateInFuture util method +merge_request: 22671 +author: +type: added diff --git a/changelogs/unreleased/embed-snippet-font.yml b/changelogs/unreleased/embed-snippet-font.yml new file mode 100644 index 00000000000..b0ae8b65f4c --- /dev/null +++ b/changelogs/unreleased/embed-snippet-font.yml @@ -0,0 +1,5 @@ +--- +title: Align embedded snippet mono space font with GitLab mono space font. +merge_request: !20865 +author: +type: changed diff --git a/doc/api/packages.md b/doc/api/packages.md index afca7db97c8..46e3b8e2d3f 100644 --- a/doc/api/packages.md +++ b/doc/api/packages.md @@ -79,7 +79,10 @@ Example response: "web_path": "/namespace1/project1/-/packages/1", "delete_api_path": "/namespace1/project1/-/packages/1" }, - "created_at": "2019-11-27T03:37:38.711Z" + "created_at": "2019-11-27T03:37:38.711Z", + "build_info": { + "pipeline_id": 123 + } }, { "id": 2, @@ -90,7 +93,10 @@ Example response: "web_path": "/namespace1/project1/-/packages/1", "delete_api_path": "/namespace1/project1/-/packages/1" }, - "created_at": "2019-11-27T03:37:38.711Z" + "created_at": "2019-11-27T03:37:38.711Z", + "build_info": { + "pipeline_id": 123 + } } ] ``` @@ -133,7 +139,10 @@ Example response: "web_path": "/namespace1/project1/-/packages/1", "delete_api_path": "/namespace1/project1/-/packages/1" }, - "created_at": "2019-11-27T03:37:38.711Z" + "created_at": "2019-11-27T03:37:38.711Z", + "build_info": { + "pipeline_id": 123 + } } ``` diff --git a/lib/gitlab/metrics/prometheus.rb b/lib/gitlab/metrics/prometheus.rb index f7480a8789e..757762499a9 100644 --- a/lib/gitlab/metrics/prometheus.rb +++ b/lib/gitlab/metrics/prometheus.rb @@ -62,10 +62,18 @@ module Gitlab end def error_detected! + set_error!(true) + end + + def clear_errors! + set_error!(false) + end + + def set_error!(status) clear_memoization(:prometheus_metrics_enabled) PROVIDER_MUTEX.synchronize do - @error = true + @error = status end end diff --git a/qa/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb index b1a80ad75cd..341e6fd0096 100644 --- a/qa/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb +++ b/qa/qa/specs/features/browser_ui/2_plan/issue/mentions_spec.rb @@ -19,11 +19,10 @@ module QA members.add_member(@user.username) end - issue = Resource::Issue.fabricate_via_api! do |issue| + Resource::Issue.fabricate_via_api! do |issue| issue.title = 'issue to test mention' issue.project = project - end - issue.visit! + end.visit! end it 'user mentions another user in an issue' do diff --git a/spec/controllers/autocomplete_controller_spec.rb b/spec/controllers/autocomplete_controller_spec.rb index 4227a4453a3..51f20bae880 100644 --- a/spec/controllers/autocomplete_controller_spec.rb +++ b/spec/controllers/autocomplete_controller_spec.rb @@ -112,9 +112,7 @@ describe AutocompleteController do context 'limited users per page' do before do - 25.times do - create(:user) - end + create_list(:user, 25) sign_in(user) get(:users) diff --git a/spec/factories/analytics/cycle_analytics/project_stages.rb b/spec/factories/analytics/cycle_analytics/project_stages.rb index 6f8c140ed8a..3a481bd20fd 100644 --- a/spec/factories/analytics/cycle_analytics/project_stages.rb +++ b/spec/factories/analytics/cycle_analytics/project_stages.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cycle_analytics_project_stage, class: Analytics::CycleAnalytics::ProjectStage do + factory :cycle_analytics_project_stage, class: 'Analytics::CycleAnalytics::ProjectStage' do project sequence(:name) { |n| "Stage ##{n}" } hidden { false } diff --git a/spec/factories/aws/roles.rb b/spec/factories/aws/roles.rb index c078033dfad..7195b571366 100644 --- a/spec/factories/aws/roles.rb +++ b/spec/factories/aws/roles.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :aws_role, class: Aws::Role do + factory :aws_role, class: 'Aws::Role' do user role_arn { 'arn:aws:iam::123456789012:role/role-name' } diff --git a/spec/factories/badge.rb b/spec/factories/badge.rb index 1d4e29014cc..7623797a7fa 100644 --- a/spec/factories/badge.rb +++ b/spec/factories/badge.rb @@ -6,11 +6,11 @@ FactoryBot.define do image_url { generate(:url) } end - factory :project_badge, traits: [:base_badge], class: ProjectBadge do + factory :project_badge, traits: [:base_badge], class: 'ProjectBadge' do project end - factory :group_badge, aliases: [:badge], traits: [:base_badge], class: GroupBadge do + factory :group_badge, aliases: [:badge], traits: [:base_badge], class: 'GroupBadge' do group end end diff --git a/spec/factories/chat_names.rb b/spec/factories/chat_names.rb index ace5d5e83c9..73c885806f2 100644 --- a/spec/factories/chat_names.rb +++ b/spec/factories/chat_names.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :chat_name, class: ChatName do + factory :chat_name, class: 'ChatName' do user factory: :user service factory: :service diff --git a/spec/factories/chat_teams.rb b/spec/factories/chat_teams.rb index 52628e6d53d..f413555d980 100644 --- a/spec/factories/chat_teams.rb +++ b/spec/factories/chat_teams.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :chat_team, class: ChatTeam do + factory :chat_team, class: 'ChatTeam' do sequence(:team_id) { |n| "abcdefghijklm#{n}" } namespace factory: :group end diff --git a/spec/factories/ci/bridge.rb b/spec/factories/ci/bridge.rb index 60219b07cf0..b2e8051eb5e 100644 --- a/spec/factories/ci/bridge.rb +++ b/spec/factories/ci/bridge.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_bridge, class: Ci::Bridge do + factory :ci_bridge, class: 'Ci::Bridge' do name { 'bridge' } stage { 'test' } stage_idx { 0 } diff --git a/spec/factories/ci/build_need.rb b/spec/factories/ci/build_need.rb index 568aff45a91..fa72e696343 100644 --- a/spec/factories/ci/build_need.rb +++ b/spec/factories/ci/build_need.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_build_need, class: Ci::BuildNeed do + factory :ci_build_need, class: 'Ci::BuildNeed' do build factory: :ci_build sequence(:name) { |n| "build_#{n}" } end diff --git a/spec/factories/ci/build_trace_chunks.rb b/spec/factories/ci/build_trace_chunks.rb index 22f091f8e76..7c348f4b7e4 100644 --- a/spec/factories/ci/build_trace_chunks.rb +++ b/spec/factories/ci/build_trace_chunks.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_build_trace_chunk, class: Ci::BuildTraceChunk do + factory :ci_build_trace_chunk, class: 'Ci::BuildTraceChunk' do build factory: :ci_build chunk_index { 0 } data_store { :redis } diff --git a/spec/factories/ci/build_trace_section_names.rb b/spec/factories/ci/build_trace_section_names.rb index e52694ef3dc..b9b66b49317 100644 --- a/spec/factories/ci/build_trace_section_names.rb +++ b/spec/factories/ci/build_trace_section_names.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_build_trace_section_name, class: Ci::BuildTraceSectionName do + factory :ci_build_trace_section_name, class: 'Ci::BuildTraceSectionName' do sequence(:name) { |n| "section_#{n}" } project factory: :project end diff --git a/spec/factories/ci/builds.rb b/spec/factories/ci/builds.rb index 0c5d14eeb32..3d65f9065bf 100644 --- a/spec/factories/ci/builds.rb +++ b/spec/factories/ci/builds.rb @@ -3,7 +3,7 @@ include ActionDispatch::TestProcess FactoryBot.define do - factory :ci_build, class: Ci::Build do + factory :ci_build, class: 'Ci::Build' do name { 'test' } stage { 'test' } stage_idx { 0 } diff --git a/spec/factories/ci/group_variables.rb b/spec/factories/ci/group_variables.rb index 217f05a088e..d3b891eb1e3 100644 --- a/spec/factories/ci/group_variables.rb +++ b/spec/factories/ci/group_variables.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_group_variable, class: Ci::GroupVariable do + factory :ci_group_variable, class: 'Ci::GroupVariable' do sequence(:key) { |n| "VARIABLE_#{n}" } value { 'VARIABLE_VALUE' } masked { false } diff --git a/spec/factories/ci/job_artifacts.rb b/spec/factories/ci/job_artifacts.rb index bdc6cc2f169..7347c2b87ca 100644 --- a/spec/factories/ci/job_artifacts.rb +++ b/spec/factories/ci/job_artifacts.rb @@ -3,7 +3,7 @@ include ActionDispatch::TestProcess FactoryBot.define do - factory :ci_job_artifact, class: Ci::JobArtifact do + factory :ci_job_artifact, class: 'Ci::JobArtifact' do job factory: :ci_build file_type { :archive } file_format { :zip } diff --git a/spec/factories/ci/job_variables.rb b/spec/factories/ci/job_variables.rb index bfc631b8126..472a89d3bef 100644 --- a/spec/factories/ci/job_variables.rb +++ b/spec/factories/ci/job_variables.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_job_variable, class: Ci::JobVariable do + factory :ci_job_variable, class: 'Ci::JobVariable' do sequence(:key) { |n| "VARIABLE_#{n}" } value { 'VARIABLE_VALUE' } diff --git a/spec/factories/ci/pipeline_schedule.rb b/spec/factories/ci/pipeline_schedule.rb index c752dc1c9dd..fc9044fb8e3 100644 --- a/spec/factories/ci/pipeline_schedule.rb +++ b/spec/factories/ci/pipeline_schedule.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_pipeline_schedule, class: Ci::PipelineSchedule do + factory :ci_pipeline_schedule, class: 'Ci::PipelineSchedule' do cron { '0 1 * * *' } cron_timezone { Gitlab::Ci::CronParser::VALID_SYNTAX_SAMPLE_TIME_ZONE } ref { 'master' } diff --git a/spec/factories/ci/pipeline_schedule_variables.rb b/spec/factories/ci/pipeline_schedule_variables.rb index 24913c614f4..d598ba1b1b9 100644 --- a/spec/factories/ci/pipeline_schedule_variables.rb +++ b/spec/factories/ci/pipeline_schedule_variables.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_pipeline_schedule_variable, class: Ci::PipelineScheduleVariable do + factory :ci_pipeline_schedule_variable, class: 'Ci::PipelineScheduleVariable' do sequence(:key) { |n| "VARIABLE_#{n}" } value { 'VARIABLE_VALUE' } variable_type { 'env_var' } diff --git a/spec/factories/ci/pipeline_variables.rb b/spec/factories/ci/pipeline_variables.rb index 48f6e35fe70..17aa9962e0b 100644 --- a/spec/factories/ci/pipeline_variables.rb +++ b/spec/factories/ci/pipeline_variables.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_pipeline_variable, class: Ci::PipelineVariable do + factory :ci_pipeline_variable, class: 'Ci::PipelineVariable' do sequence(:key) { |n| "VARIABLE_#{n}" } value { 'VARIABLE_VALUE' } diff --git a/spec/factories/ci/pipelines.rb b/spec/factories/ci/pipelines.rb index e2ec9d496bc..afc203562ba 100644 --- a/spec/factories/ci/pipelines.rb +++ b/spec/factories/ci/pipelines.rb @@ -2,7 +2,7 @@ FactoryBot.define do # TODO: we can remove this factory in favour of :ci_pipeline - factory :ci_empty_pipeline, class: Ci::Pipeline do + factory :ci_empty_pipeline, class: 'Ci::Pipeline' do source { :push } ref { 'master' } sha { '97de212e80737a608d939f648d959671fb0a0142' } diff --git a/spec/factories/ci/resource.rb b/spec/factories/ci/resource.rb index d47b3ba4635..515329506e5 100644 --- a/spec/factories/ci/resource.rb +++ b/spec/factories/ci/resource.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_resource, class: Ci::Resource do + factory :ci_resource, class: 'Ci::Resource' do resource_group factory: :ci_resource_group trait(:retained) do diff --git a/spec/factories/ci/resource_group.rb b/spec/factories/ci/resource_group.rb index bdfc0740a45..7ca89037160 100644 --- a/spec/factories/ci/resource_group.rb +++ b/spec/factories/ci/resource_group.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_resource_group, class: Ci::ResourceGroup do + factory :ci_resource_group, class: 'Ci::ResourceGroup' do project sequence(:key) { |n| "IOS_#{n}" } end diff --git a/spec/factories/ci/runner_projects.rb b/spec/factories/ci/runner_projects.rb index bc28544a839..ead9fe10f6e 100644 --- a/spec/factories/ci/runner_projects.rb +++ b/spec/factories/ci/runner_projects.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_runner_project, class: Ci::RunnerProject do + factory :ci_runner_project, class: 'Ci::RunnerProject' do runner factory: [:ci_runner, :project] project end diff --git a/spec/factories/ci/runners.rb b/spec/factories/ci/runners.rb index 3697970721b..30f78531324 100644 --- a/spec/factories/ci/runners.rb +++ b/spec/factories/ci/runners.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_runner, class: Ci::Runner do + factory :ci_runner, class: 'Ci::Runner' do sequence(:description) { |n| "My runner#{n}" } platform { "darwin" } diff --git a/spec/factories/ci/sources/pipelines.rb b/spec/factories/ci/sources/pipelines.rb index 57495502944..93d35097eac 100644 --- a/spec/factories/ci/sources/pipelines.rb +++ b/spec/factories/ci/sources/pipelines.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_sources_pipeline, class: Ci::Sources::Pipeline do + factory :ci_sources_pipeline, class: 'Ci::Sources::Pipeline' do after(:build) do |source| source.project ||= source.pipeline.project source.source_pipeline ||= source.source_job.pipeline diff --git a/spec/factories/ci/stages.rb b/spec/factories/ci/stages.rb index 67f4db41d96..4751c04584e 100644 --- a/spec/factories/ci/stages.rb +++ b/spec/factories/ci/stages.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_stage, class: Ci::LegacyStage do + factory :ci_stage, class: 'Ci::LegacyStage' do skip_create transient do @@ -18,7 +18,7 @@ FactoryBot.define do end end - factory :ci_stage_entity, class: Ci::Stage do + factory :ci_stage_entity, class: 'Ci::Stage' do project factory: :project pipeline factory: :ci_empty_pipeline diff --git a/spec/factories/ci/trigger_requests.rb b/spec/factories/ci/trigger_requests.rb index d63bf9868c9..cfffcf222f3 100644 --- a/spec/factories/ci/trigger_requests.rb +++ b/spec/factories/ci/trigger_requests.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_trigger_request, class: Ci::TriggerRequest do + factory :ci_trigger_request, class: 'Ci::TriggerRequest' do trigger factory: :ci_trigger end end diff --git a/spec/factories/ci/triggers.rb b/spec/factories/ci/triggers.rb index 6f628ed5435..5089d43f6ff 100644 --- a/spec/factories/ci/triggers.rb +++ b/spec/factories/ci/triggers.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_trigger_without_token, class: Ci::Trigger do + factory :ci_trigger_without_token, class: 'Ci::Trigger' do owner factory :ci_trigger do diff --git a/spec/factories/ci/variables.rb b/spec/factories/ci/variables.rb index 9d2501c4e18..a4cbf873b0b 100644 --- a/spec/factories/ci/variables.rb +++ b/spec/factories/ci/variables.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :ci_variable, class: Ci::Variable do + factory :ci_variable, class: 'Ci::Variable' do sequence(:key) { |n| "VARIABLE_#{n}" } value { 'VARIABLE_VALUE' } masked { false } diff --git a/spec/factories/clusters/applications/helm.rb b/spec/factories/clusters/applications/helm.rb index 8858675c2b8..ff9fc882dcc 100644 --- a/spec/factories/clusters/applications/helm.rb +++ b/spec/factories/clusters/applications/helm.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :clusters_applications_helm, class: Clusters::Applications::Helm do + factory :clusters_applications_helm, class: 'Clusters::Applications::Helm' do cluster factory: %i(cluster provided_by_gcp) before(:create) do @@ -70,40 +70,40 @@ FactoryBot.define do updated_at { ClusterWaitForAppInstallationWorker::TIMEOUT.ago } end - factory :clusters_applications_ingress, class: Clusters::Applications::Ingress do + factory :clusters_applications_ingress, class: 'Clusters::Applications::Ingress' do modsecurity_enabled { false } cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_cert_manager, class: Clusters::Applications::CertManager do + factory :clusters_applications_cert_manager, class: 'Clusters::Applications::CertManager' do email { 'admin@example.com' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_elastic_stack, class: Clusters::Applications::ElasticStack do + factory :clusters_applications_elastic_stack, class: 'Clusters::Applications::ElasticStack' do cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_crossplane, class: Clusters::Applications::Crossplane do + factory :clusters_applications_crossplane, class: 'Clusters::Applications::Crossplane' do stack { 'gcp' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_prometheus, class: Clusters::Applications::Prometheus do + factory :clusters_applications_prometheus, class: 'Clusters::Applications::Prometheus' do cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_runner, class: Clusters::Applications::Runner do + factory :clusters_applications_runner, class: 'Clusters::Applications::Runner' do runner factory: %i(ci_runner) cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_knative, class: Clusters::Applications::Knative do + factory :clusters_applications_knative, class: 'Clusters::Applications::Knative' do hostname { 'example.com' } cluster factory: %i(cluster with_installed_helm provided_by_gcp) end - factory :clusters_applications_jupyter, class: Clusters::Applications::Jupyter do + factory :clusters_applications_jupyter, class: 'Clusters::Applications::Jupyter' do oauth_application factory: :oauth_application cluster factory: %i(cluster with_installed_helm provided_by_gcp project) end diff --git a/spec/factories/clusters/clusters.rb b/spec/factories/clusters/clusters.rb index 7121850e5ff..843f87ef7d6 100644 --- a/spec/factories/clusters/clusters.rb +++ b/spec/factories/clusters/clusters.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cluster, class: Clusters::Cluster do + factory :cluster, class: 'Clusters::Cluster' do user name { 'test-cluster' } cluster_type { :project_type } diff --git a/spec/factories/clusters/kubernetes_namespaces.rb b/spec/factories/clusters/kubernetes_namespaces.rb index 75895e1c020..c820bf4da60 100644 --- a/spec/factories/clusters/kubernetes_namespaces.rb +++ b/spec/factories/clusters/kubernetes_namespaces.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cluster_kubernetes_namespace, class: Clusters::KubernetesNamespace do + factory :cluster_kubernetes_namespace, class: 'Clusters::KubernetesNamespace' do association :cluster, :project, :provided_by_gcp after(:build) do |kubernetes_namespace| diff --git a/spec/factories/clusters/platforms/kubernetes.rb b/spec/factories/clusters/platforms/kubernetes.rb index dbcb838e9da..822457adaef 100644 --- a/spec/factories/clusters/platforms/kubernetes.rb +++ b/spec/factories/clusters/platforms/kubernetes.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cluster_platform_kubernetes, class: Clusters::Platforms::Kubernetes do + factory :cluster_platform_kubernetes, class: 'Clusters::Platforms::Kubernetes' do association :cluster, platform_type: :kubernetes, provider_type: :user namespace { nil } api_url { 'https://kubernetes.example.com' } diff --git a/spec/factories/clusters/projects.rb b/spec/factories/clusters/projects.rb index 6cda77c6f85..e980279cad9 100644 --- a/spec/factories/clusters/projects.rb +++ b/spec/factories/clusters/projects.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cluster_project, class: Clusters::Project do + factory :cluster_project, class: 'Clusters::Project' do cluster project end diff --git a/spec/factories/clusters/providers/aws.rb b/spec/factories/clusters/providers/aws.rb index e4b10aa5f33..2c54300e606 100644 --- a/spec/factories/clusters/providers/aws.rb +++ b/spec/factories/clusters/providers/aws.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cluster_provider_aws, class: Clusters::Providers::Aws do + factory :cluster_provider_aws, class: 'Clusters::Providers::Aws' do association :cluster, platform_type: :kubernetes, provider_type: :aws role_arn { 'arn:aws:iam::123456789012:role/role-name' } diff --git a/spec/factories/clusters/providers/gcp.rb b/spec/factories/clusters/providers/gcp.rb index 216c4d4fa31..c99f4407b42 100644 --- a/spec/factories/clusters/providers/gcp.rb +++ b/spec/factories/clusters/providers/gcp.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :cluster_provider_gcp, class: Clusters::Providers::Gcp do + factory :cluster_provider_gcp, class: 'Clusters::Providers::Gcp' do association :cluster, platform_type: :kubernetes, provider_type: :gcp gcp_project_id { 'test-gcp-project' } diff --git a/spec/factories/commit_statuses.rb b/spec/factories/commit_statuses.rb index a54c0ce74c6..fa10b37cdbf 100644 --- a/spec/factories/commit_statuses.rb +++ b/spec/factories/commit_statuses.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :commit_status, class: CommitStatus do + factory :commit_status, class: 'CommitStatus' do name { 'default' } stage { 'test' } stage_idx { 0 } @@ -59,7 +59,7 @@ FactoryBot.define do build.project = build.pipeline.project end - factory :generic_commit_status, class: GenericCommitStatus do + factory :generic_commit_status, class: 'GenericCommitStatus' do name { 'generic' } description { 'external commit status' } end diff --git a/spec/factories/deployments.rb b/spec/factories/deployments.rb index f8738d28d83..f92e213a385 100644 --- a/spec/factories/deployments.rb +++ b/spec/factories/deployments.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :deployment, class: Deployment do + factory :deployment, class: 'Deployment' do sha { 'b83d6e391c22777fca1ed3012fce84f633d7fed0' } ref { 'master' } tag { false } diff --git a/spec/factories/dev_ops_score_metrics.rb b/spec/factories/dev_ops_score_metrics.rb index 0d9d7059e7f..1d1f1a2c39e 100644 --- a/spec/factories/dev_ops_score_metrics.rb +++ b/spec/factories/dev_ops_score_metrics.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :dev_ops_score_metric, class: DevOpsScore::Metric do + factory :dev_ops_score_metric, class: 'DevOpsScore::Metric' do leader_issues { 9.256 } instance_issues { 1.234 } percentage_issues { 13.331 } diff --git a/spec/factories/environments.rb b/spec/factories/environments.rb index 44aa4527e12..323ea2d478b 100644 --- a/spec/factories/environments.rb +++ b/spec/factories/environments.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :environment, class: Environment do + factory :environment, class: 'Environment' do sequence(:name) { |n| "environment#{n}" } association :project, :repository diff --git a/spec/factories/error_tracking/detailed_error.rb b/spec/factories/error_tracking/detailed_error.rb index b0114558bd4..0fba79b2acb 100644 --- a/spec/factories/error_tracking/detailed_error.rb +++ b/spec/factories/error_tracking/detailed_error.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :detailed_error_tracking_error, class: Gitlab::ErrorTracking::DetailedError do + factory :detailed_error_tracking_error, class: 'Gitlab::ErrorTracking::DetailedError' do id { '1' } title { 'title' } type { 'error' } diff --git a/spec/factories/error_tracking/error.rb b/spec/factories/error_tracking/error.rb index 541bc410462..5be1f074555 100644 --- a/spec/factories/error_tracking/error.rb +++ b/spec/factories/error_tracking/error.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :error_tracking_error, class: Gitlab::ErrorTracking::Error do + factory :error_tracking_error, class: 'Gitlab::ErrorTracking::Error' do id { 'id' } title { 'title' } type { 'error' } diff --git a/spec/factories/error_tracking/error_event.rb b/spec/factories/error_tracking/error_event.rb index 1590095f1bd..880fdf17fae 100644 --- a/spec/factories/error_tracking/error_event.rb +++ b/spec/factories/error_tracking/error_event.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :error_tracking_error_event, class: Gitlab::ErrorTracking::ErrorEvent do + factory :error_tracking_error_event, class: 'Gitlab::ErrorTracking::ErrorEvent' do issue_id { 'id' } date_received { Time.now.iso8601 } stack_trace_entries do diff --git a/spec/factories/error_tracking/project.rb b/spec/factories/error_tracking/project.rb index 885d398d433..4cbec312622 100644 --- a/spec/factories/error_tracking/project.rb +++ b/spec/factories/error_tracking/project.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :error_tracking_project, class: Gitlab::ErrorTracking::Project do + factory :error_tracking_project, class: 'Gitlab::ErrorTracking::Project' do id { '1' } name { 'Sentry Example' } slug { 'sentry-example' } diff --git a/spec/factories/events.rb b/spec/factories/events.rb index 4eedcd02c9a..81d57a25058 100644 --- a/spec/factories/events.rb +++ b/spec/factories/events.rb @@ -24,7 +24,7 @@ FactoryBot.define do end end - factory :push_event, class: PushEvent do + factory :push_event, class: 'PushEvent' do project factory: :project_empty_repo author(factory: :user) { project.creator } action { Event::PUSHED } diff --git a/spec/factories/gitaly/commit.rb b/spec/factories/gitaly/commit.rb index ef5301db770..2ed201e9aac 100644 --- a/spec/factories/gitaly/commit.rb +++ b/spec/factories/gitaly/commit.rb @@ -3,7 +3,7 @@ FactoryBot.define do sequence(:gitaly_commit_id) { Digest::SHA1.hexdigest(Time.now.to_f.to_s) } - factory :gitaly_commit, class: Gitaly::GitCommit do + factory :gitaly_commit, class: 'Gitaly::GitCommit' do skip_create id { generate(:gitaly_commit_id) } diff --git a/spec/factories/gitaly/commit_author.rb b/spec/factories/gitaly/commit_author.rb index 51dcd8a623b..31097118d1f 100644 --- a/spec/factories/gitaly/commit_author.rb +++ b/spec/factories/gitaly/commit_author.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :gitaly_commit_author, class: Gitaly::CommitAuthor do + factory :gitaly_commit_author, class: 'Gitaly::CommitAuthor' do skip_create name { generate(:name) } diff --git a/spec/factories/gitaly/tag.rb b/spec/factories/gitaly/tag.rb index a7a84753090..9dd1b8301c1 100644 --- a/spec/factories/gitaly/tag.rb +++ b/spec/factories/gitaly/tag.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :gitaly_tag, class: Gitaly::Tag do + factory :gitaly_tag, class: 'Gitaly::Tag' do skip_create name { 'v3.1.4' } diff --git a/spec/factories/grafana_integrations.rb b/spec/factories/grafana_integrations.rb index ae819ca828c..a647ef8d2ec 100644 --- a/spec/factories/grafana_integrations.rb +++ b/spec/factories/grafana_integrations.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :grafana_integration, class: GrafanaIntegration do + factory :grafana_integration, class: 'GrafanaIntegration' do project grafana_url { 'https://grafana.example.com' } token { SecureRandom.hex(10) } diff --git a/spec/factories/groups.rb b/spec/factories/groups.rb index 93c01f8034d..4b6c1756d1e 100644 --- a/spec/factories/groups.rb +++ b/spec/factories/groups.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :group, class: Group, parent: :namespace do + factory :group, class: 'Group', parent: :namespace do sequence(:name) { |n| "group#{n}" } path { name.downcase.gsub(/\s/, '_') } type { 'Group' } diff --git a/spec/factories/import_states.rb b/spec/factories/import_states.rb index 576f68ab57f..4dca78b1059 100644 --- a/spec/factories/import_states.rb +++ b/spec/factories/import_states.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :import_state, class: ProjectImportState do + factory :import_state, class: 'ProjectImportState' do status { :none } association :project, factory: :project diff --git a/spec/factories/labels.rb b/spec/factories/labels.rb index 89fcd8b1a9d..81d3e4be6fd 100644 --- a/spec/factories/labels.rb +++ b/spec/factories/labels.rb @@ -6,7 +6,7 @@ FactoryBot.define do color { "#990000" } end - factory :label, traits: [:base_label], class: ProjectLabel do + factory :label, traits: [:base_label], class: 'ProjectLabel' do project transient do diff --git a/spec/factories/namespace/aggregation_schedules.rb b/spec/factories/namespace/aggregation_schedules.rb index c172c3360e2..5962c46dee6 100644 --- a/spec/factories/namespace/aggregation_schedules.rb +++ b/spec/factories/namespace/aggregation_schedules.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :namespace_aggregation_schedules, class: Namespace::AggregationSchedule do + factory :namespace_aggregation_schedules, class: 'Namespace::AggregationSchedule' do namespace end end diff --git a/spec/factories/namespace/root_storage_statistics.rb b/spec/factories/namespace/root_storage_statistics.rb index 54c5921eb44..3b11d7a6ec7 100644 --- a/spec/factories/namespace/root_storage_statistics.rb +++ b/spec/factories/namespace/root_storage_statistics.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :namespace_root_storage_statistics, class: Namespace::RootStorageStatistics do + factory :namespace_root_storage_statistics, class: 'Namespace::RootStorageStatistics' do namespace end end diff --git a/spec/factories/notes.rb b/spec/factories/notes.rb index 330f5276422..11fc5060cf0 100644 --- a/spec/factories/notes.rb +++ b/spec/factories/notes.rb @@ -18,9 +18,9 @@ FactoryBot.define do factory :note_on_personal_snippet, traits: [:on_personal_snippet] factory :system_note, traits: [:system] - factory :discussion_note, class: DiscussionNote + factory :discussion_note, class: 'DiscussionNote' - factory :discussion_note_on_merge_request, traits: [:on_merge_request], class: DiscussionNote do + factory :discussion_note_on_merge_request, traits: [:on_merge_request], class: 'DiscussionNote' do association :project, :repository trait :resolved do @@ -29,22 +29,22 @@ FactoryBot.define do end end - factory :discussion_note_on_issue, traits: [:on_issue], class: DiscussionNote + factory :discussion_note_on_issue, traits: [:on_issue], class: 'DiscussionNote' - factory :discussion_note_on_commit, traits: [:on_commit], class: DiscussionNote + factory :discussion_note_on_commit, traits: [:on_commit], class: 'DiscussionNote' - factory :discussion_note_on_personal_snippet, traits: [:on_personal_snippet], class: DiscussionNote + factory :discussion_note_on_personal_snippet, traits: [:on_personal_snippet], class: 'DiscussionNote' - factory :discussion_note_on_snippet, traits: [:on_snippet], class: DiscussionNote + factory :discussion_note_on_snippet, traits: [:on_snippet], class: 'DiscussionNote' - factory :legacy_diff_note_on_commit, traits: [:on_commit, :legacy_diff_note], class: LegacyDiffNote + factory :legacy_diff_note_on_commit, traits: [:on_commit, :legacy_diff_note], class: 'LegacyDiffNote' - factory :legacy_diff_note_on_merge_request, traits: [:on_merge_request, :legacy_diff_note], class: LegacyDiffNote do + factory :legacy_diff_note_on_merge_request, traits: [:on_merge_request, :legacy_diff_note], class: 'LegacyDiffNote' do association :project, :repository position { '' } end - factory :diff_note_on_merge_request, traits: [:on_merge_request], class: DiffNote do + factory :diff_note_on_merge_request, traits: [:on_merge_request], class: 'DiffNote' do association :project, :repository transient do @@ -95,7 +95,7 @@ FactoryBot.define do end end - factory :diff_note_on_commit, traits: [:on_commit], class: DiffNote do + factory :diff_note_on_commit, traits: [:on_commit], class: 'DiffNote' do association :project, :repository transient do diff --git a/spec/factories/project_error_tracking_settings.rb b/spec/factories/project_error_tracking_settings.rb index f90a2d17846..7af881f4214 100644 --- a/spec/factories/project_error_tracking_settings.rb +++ b/spec/factories/project_error_tracking_settings.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :project_error_tracking_setting, class: ErrorTracking::ProjectErrorTrackingSetting do + factory :project_error_tracking_setting, class: 'ErrorTracking::ProjectErrorTrackingSetting' do project api_url { 'https://gitlab.com/api/0/projects/sentry-org/sentry-project' } enabled { true } diff --git a/spec/factories/project_metrics_settings.rb b/spec/factories/project_metrics_settings.rb index 51b2ce0e0e9..b5c0fd88a6c 100644 --- a/spec/factories/project_metrics_settings.rb +++ b/spec/factories/project_metrics_settings.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :project_metrics_setting, class: ProjectMetricsSetting do + factory :project_metrics_setting, class: 'ProjectMetricsSetting' do project external_dashboard_url { 'https://grafana.com' } end diff --git a/spec/factories/prometheus_metrics.rb b/spec/factories/prometheus_metrics.rb index f6b58cf84c3..83e3845f1c3 100644 --- a/spec/factories/prometheus_metrics.rb +++ b/spec/factories/prometheus_metrics.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :prometheus_metric, class: PrometheusMetric do + factory :prometheus_metric, class: 'PrometheusMetric' do title { 'title' } query { 'avg(metric)' } y_label { 'y_label' } diff --git a/spec/factories/releases/link.rb b/spec/factories/releases/link.rb index d23db6d4bad..82446dbdb69 100644 --- a/spec/factories/releases/link.rb +++ b/spec/factories/releases/link.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :release_link, class: ::Releases::Link do + factory :release_link, class: '::Releases::Link' do release sequence(:name) { |n| "release-18.#{n}.dmg" } sequence(:url) { |n| "https://example.com/scrambled-url/app-#{n}.zip" } diff --git a/spec/factories/sentry_issue.rb b/spec/factories/sentry_issue.rb index c9886f1673a..7e3f1750d7b 100644 --- a/spec/factories/sentry_issue.rb +++ b/spec/factories/sentry_issue.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :sentry_issue, class: SentryIssue do + factory :sentry_issue, class: 'SentryIssue' do issue sentry_issue_identifier { 1234567891 } end diff --git a/spec/factories/serverless/domain_cluster.rb b/spec/factories/serverless/domain_cluster.rb index 290d3fc152e..5adfcacbd7f 100644 --- a/spec/factories/serverless/domain_cluster.rb +++ b/spec/factories/serverless/domain_cluster.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :serverless_domain_cluster, class: Serverless::DomainCluster do + factory :serverless_domain_cluster, class: 'Serverless::DomainCluster' do pages_domain { create(:pages_domain) } knative { create(:clusters_applications_knative) } creator { create(:user) } diff --git a/spec/factories/services.rb b/spec/factories/services.rb index b6bb30d1f93..5d62b3cb9c9 100644 --- a/spec/factories/services.rb +++ b/spec/factories/services.rb @@ -6,7 +6,7 @@ FactoryBot.define do type { 'Service' } end - factory :custom_issue_tracker_service, class: CustomIssueTrackerService do + factory :custom_issue_tracker_service, class: 'CustomIssueTrackerService' do project active { true } issue_tracker diff --git a/spec/factories/terms.rb b/spec/factories/terms.rb index b98a2453f7e..915a6099c2a 100644 --- a/spec/factories/terms.rb +++ b/spec/factories/terms.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true FactoryBot.define do - factory :term, class: ApplicationSetting::Term do + factory :term, class: 'ApplicationSetting::Term' do terms { "Lorem ipsum dolor sit amet, consectetur adipiscing elit." } end end diff --git a/spec/factories/todos.rb b/spec/factories/todos.rb index bb91fc9ac8e..0b5d00cff67 100644 --- a/spec/factories/todos.rb +++ b/spec/factories/todos.rb @@ -46,7 +46,7 @@ FactoryBot.define do end end - factory :on_commit_todo, class: Todo do + factory :on_commit_todo, class: 'Todo' do project author user diff --git a/spec/features/boards/boards_spec.rb b/spec/features/boards/boards_spec.rb index a5f98e82c33..8aad598b843 100644 --- a/spec/features/boards/boards_spec.rb +++ b/spec/features/boards/boards_spec.rb @@ -163,9 +163,7 @@ describe 'Issue Boards', :js do end it 'infinite scrolls list' do - 50.times do - create(:labeled_issue, project: project, labels: [planning]) - end + create_list(:labeled_issue, 50, project: project, labels: [planning]) visit project_board_path(project, board) wait_for_requests @@ -475,9 +473,7 @@ describe 'Issue Boards', :js do end it 'infinite scrolls list with label filter' do - 50.times do - create(:labeled_issue, project: project, labels: [planning, testing]) - end + create_list(:labeled_issue, 50, project: project, labels: [planning, testing]) set_filter("label", testing.title) click_filter_link(testing.title) diff --git a/spec/features/instance_statistics/cohorts_spec.rb b/spec/features/instance_statistics/cohorts_spec.rb index 3940e8fa389..0bb2e4b997d 100644 --- a/spec/features/instance_statistics/cohorts_spec.rb +++ b/spec/features/instance_statistics/cohorts_spec.rb @@ -10,7 +10,7 @@ describe 'Cohorts page' do end it 'See users count per month' do - 2.times { create(:user) } + create_list(:user, 2) visit instance_statistics_cohorts_path diff --git a/spec/features/issuables/issuable_list_spec.rb b/spec/features/issuables/issuable_list_spec.rb index 30c516459c5..bcc05d313ad 100644 --- a/spec/features/issuables/issuable_list_spec.rb +++ b/spec/features/issuables/issuable_list_spec.rb @@ -83,9 +83,7 @@ describe 'issuable list' do create(:merge_request, title: FFaker::Lorem.sentence, source_project: project, source_branch: source_branch, head_pipeline: pipeline) end - 2.times do - create(:note_on_issue, noteable: issuable, project: project) - end + create_list(:note_on_issue, 2, noteable: issuable, project: project) create(:award_emoji, :downvote, awardable: issuable) create(:award_emoji, :upvote, awardable: issuable) diff --git a/spec/finders/issues_finder_spec.rb b/spec/finders/issues_finder_spec.rb index c52ee89006b..056795a50d0 100644 --- a/spec/finders/issues_finder_spec.rb +++ b/spec/finders/issues_finder_spec.rb @@ -435,9 +435,7 @@ describe IssuesFinder do let(:params) { { label_name: described_class::FILTER_ANY } } it 'returns issues that have one or more label' do - 2.times do - create(:label_link, label: create(:label, project: project2), target: issue3) - end + create_list(:label_link, 2, label: create(:label, project: project2), target: issue3) expect(issues).to contain_exactly(issue2, issue3) end diff --git a/spec/frontend/lib/utils/datetime_utility_spec.js b/spec/frontend/lib/utils/datetime_utility_spec.js index c32710196db..e584150ba70 100644 --- a/spec/frontend/lib/utils/datetime_utility_spec.js +++ b/spec/frontend/lib/utils/datetime_utility_spec.js @@ -455,6 +455,23 @@ describe('getDateInPast', () => { }); }); +describe('getDateInFuture', () => { + const date = new Date('2019-07-16T00:00:00.000Z'); + const daysInFuture = 90; + + it('returns the correct date in the future', () => { + const dateInFuture = datetimeUtility.getDateInFuture(date, daysInFuture); + const expectedDateInFuture = new Date('2019-10-14T00:00:00.000Z'); + + expect(dateInFuture).toStrictEqual(expectedDateInFuture); + }); + + it('does not modifiy the original date', () => { + datetimeUtility.getDateInFuture(date, daysInFuture); + expect(date).toStrictEqual(new Date('2019-07-16T00:00:00.000Z')); + }); +}); + describe('getDatesInRange', () => { it('returns an empty array if 1st or 2nd argument is not a Date object', () => { const d1 = new Date('2019-01-01'); diff --git a/spec/lib/gitlab/ci/config/entry/reports_spec.rb b/spec/lib/gitlab/ci/config/entry/reports_spec.rb index 060fc5c1fe0..8562885c90c 100644 --- a/spec/lib/gitlab/ci/config/entry/reports_spec.rb +++ b/spec/lib/gitlab/ci/config/entry/reports_spec.rb @@ -41,7 +41,7 @@ describe Gitlab::Ci::Config::Entry::Reports do :container_scanning | 'gl-container-scanning-report.json' :dast | 'gl-dast-report.json' :license_management | 'gl-license-management-report.json' - :license_scanning | 'gl-license-management-report.json' + :license_scanning | 'gl-license-scanning-report.json' :performance | 'performance.json' end diff --git a/spec/lib/gitlab/metrics/prometheus_spec.rb b/spec/lib/gitlab/metrics/prometheus_spec.rb index d4aa96a5b20..e15a063fc9e 100644 --- a/spec/lib/gitlab/metrics/prometheus_spec.rb +++ b/spec/lib/gitlab/metrics/prometheus_spec.rb @@ -6,6 +6,10 @@ describe Gitlab::Metrics::Prometheus, :prometheus do let(:all_metrics) { Gitlab::Metrics } let(:registry) { all_metrics.registry } + after do + all_metrics.clear_errors! + end + describe '#reset_registry!' do it 'clears existing metrics' do registry.counter(:test, 'test metric') diff --git a/spec/models/concerns/each_batch_spec.rb b/spec/models/concerns/each_batch_spec.rb index c4cf8e80f7a..294fde4f8e6 100644 --- a/spec/models/concerns/each_batch_spec.rb +++ b/spec/models/concerns/each_batch_spec.rb @@ -13,7 +13,7 @@ describe EachBatch do end before do - 5.times { create(:user, updated_at: 1.day.ago) } + create_list(:user, 5, updated_at: 1.day.ago) end shared_examples 'each_batch handling' do |kwargs| diff --git a/spec/models/concerns/issuable_spec.rb b/spec/models/concerns/issuable_spec.rb index 2f4855efff0..3e5c16c2491 100644 --- a/spec/models/concerns/issuable_spec.rb +++ b/spec/models/concerns/issuable_spec.rb @@ -326,7 +326,7 @@ describe Issuable do context 'when all of the results are level on the sort key' do let!(:issues) do - 10.times { create(:issue, project: project) } + create_list(:issue, 10, project: project) end it 'has no duplicates across pages' do diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb index e2fb7674d62..e3d9ffcfff1 100644 --- a/spec/models/project_spec.rb +++ b/spec/models/project_spec.rb @@ -1348,9 +1348,7 @@ describe Project do let(:project2) { create(:project, :public, group: group) } before do - 2.times do - create(:note_on_commit, project: project1) - end + create_list(:note_on_commit, 2, project: project1) create(:note_on_commit, project: project2) @@ -1364,9 +1362,7 @@ describe Project do end it 'does not take system notes into account' do - 10.times do - create(:note_on_commit, project: project2, system: true) - end + create_list(:note_on_commit, 10, project: project2, system: true) expect(described_class.trending.to_a).to eq([project1, project2]) end diff --git a/spec/models/trending_project_spec.rb b/spec/models/trending_project_spec.rb index 619fc8e7d38..4a248b71574 100644 --- a/spec/models/trending_project_spec.rb +++ b/spec/models/trending_project_spec.rb @@ -11,13 +11,9 @@ describe TrendingProject do let(:internal_project) { create(:project, :internal) } before do - 3.times do - create(:note_on_commit, project: public_project1) - end + create_list(:note_on_commit, 3, project: public_project1) - 2.times do - create(:note_on_commit, project: public_project2) - end + create_list(:note_on_commit, 2, project: public_project2) create(:note_on_commit, project: public_project3, created_at: 5.weeks.ago) create(:note_on_commit, project: private_project) diff --git a/spec/requests/api/jobs_spec.rb b/spec/requests/api/jobs_spec.rb index 82bf607b911..1e1099ebcb6 100644 --- a/spec/requests/api/jobs_spec.rb +++ b/spec/requests/api/jobs_spec.rb @@ -244,7 +244,7 @@ describe API::Jobs do get api("/projects/#{project.id}/pipelines/#{pipeline.id}/jobs", api_user), params: query end.count - 3.times { create(:ci_build, :trace_artifact, :artifacts, :test_reports, pipeline: pipeline) } + create_list(:ci_build, 3, :trace_artifact, :artifacts, :test_reports, pipeline: pipeline) expect do get api("/projects/#{project.id}/pipelines/#{pipeline.id}/jobs", api_user), params: query diff --git a/spec/requests/api/pipelines_spec.rb b/spec/requests/api/pipelines_spec.rb index a9d570b5696..75e3013d362 100644 --- a/spec/requests/api/pipelines_spec.rb +++ b/spec/requests/api/pipelines_spec.rb @@ -254,9 +254,7 @@ describe API::Pipelines do context 'when order_by and sort are specified' do context 'when order_by user_id' do before do - 3.times do - create(:ci_pipeline, project: project, user: create(:user)) - end + create_list(:ci_pipeline, 3, project: project, user: create(:user)) end context 'when sort parameter is valid' do diff --git a/spec/views/search/_results.html.haml_spec.rb b/spec/views/search/_results.html.haml_spec.rb index 628d2e10f93..3243758c650 100644 --- a/spec/views/search/_results.html.haml_spec.rb +++ b/spec/views/search/_results.html.haml_spec.rb @@ -6,7 +6,7 @@ describe 'search/_results' do before do controller.params[:action] = 'show' - 3.times { create(:issue) } + create_list(:issue, 3) @search_objects = Issue.page(1).per(2) @scope = 'issues' |