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:
-rw-r--r--.rubocop_todo/layout/hash_alignment.yml40
-rw-r--r--app/views/projects/project_templates/_template.html.haml2
-rw-r--r--doc/ci/index.md7
-rw-r--r--doc/user/group/manage.md7
-rw-r--r--lib/gitlab/database/migrations/base_background_runner.rb2
-rw-r--r--lib/gitlab/database/migrations/test_background_runner.rb1
-rw-r--r--lib/gitlab/database/migrations/test_batched_background_runner.rb75
-rw-r--r--qa/qa.rb1
-rw-r--r--qa/qa/fixtures/package_managers/terraform/module_upload.yaml.erb21
-rw-r--r--qa/qa/page/component/project/templates.rb2
-rw-r--r--qa/qa/page/project/new.rb2
-rw-r--r--qa/qa/page/project/packages/index.rb9
-rw-r--r--qa/qa/page/project/sub_menus/packages.rb8
-rw-r--r--qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb81
-rw-r--r--spec/benchmarks/banzai_benchmark.rb10
-rw-r--r--spec/db/migration_spec.rb4
-rw-r--r--spec/finders/ci/pipelines_for_merge_request_finder_spec.rb20
-rw-r--r--spec/finders/group_descendants_finder_spec.rb6
-rw-r--r--spec/finders/group_members_finder_spec.rb44
-rw-r--r--spec/finders/template_finder_spec.rb8
-rw-r--r--spec/graphql/mutations/releases/update_spec.rb4
-rw-r--r--spec/graphql/resolvers/board_lists_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ci/config_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ci/group_runners_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ci/jobs_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/ci/runners_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/container_repositories_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/container_repository_tags_resolver_spec.rb2
-rw-r--r--spec/graphql/resolvers/design_management/versions_resolver_spec.rb4
-rw-r--r--spec/graphql/resolvers/work_items_resolver_spec.rb4
-rw-r--r--spec/helpers/ci/builds_helper_spec.rb2
-rw-r--r--spec/helpers/sorting_helper_spec.rb36
-rw-r--r--spec/helpers/storage_helper_spec.rb16
-rw-r--r--spec/helpers/wiki_helper_spec.rb8
-rw-r--r--spec/initializers/00_rails_disable_joins_spec.rb6
-rw-r--r--spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb27
-rw-r--r--spec/lib/gitlab/metrics/web_transaction_spec.rb4
-rw-r--r--spec/lib/gitlab/omniauth_initializer_spec.rb12
-rw-r--r--spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb4
-rw-r--r--spec/lib/gitlab/sidekiq_death_handler_spec.rb8
-rw-r--r--spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb48
-rw-r--r--spec/lib/gitlab/slug/environment_spec.rb26
-rw-r--r--spec/lib/gitlab/tracking_spec.rb24
-rw-r--r--spec/lib/gitlab/usage_data/topology_spec.rb16
-rw-r--r--spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb4
-rw-r--r--spec/lib/gitlab/usage_data_counters/note_counter_spec.rb2
-rw-r--r--spec/lib/gitlab/usage_data_spec.rb8
-rw-r--r--spec/lib/gitlab/utils_spec.rb2
-rw-r--r--spec/lib/gitlab/word_diff/parser_spec.rb18
-rw-r--r--spec/lib/marginalia_spec.rb20
-rw-r--r--spec/lib/security/ci_configuration/sast_build_action_spec.rb58
-rw-r--r--spec/mailers/emails/pipelines_spec.rb4
-rw-r--r--spec/migrations/20210804150320_create_base_work_item_types_spec.rb6
-rw-r--r--spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb6
-rw-r--r--spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb12
-rw-r--r--spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb8
-rw-r--r--spec/models/ci/pipeline_spec.rb36
-rw-r--r--spec/models/commit_status_spec.rb10
-rw-r--r--spec/policies/ci/pipeline_schedule_policy_spec.rb2
-rw-r--r--spec/presenters/clusters/cluster_presenter_spec.rb26
60 files changed, 492 insertions, 343 deletions
diff --git a/.rubocop_todo/layout/hash_alignment.yml b/.rubocop_todo/layout/hash_alignment.yml
index 11f9ee53e67..f6eeb3d533e 100644
--- a/.rubocop_todo/layout/hash_alignment.yml
+++ b/.rubocop_todo/layout/hash_alignment.yml
@@ -26,26 +26,6 @@ Layout/HashAlignment:
- 'spec/controllers/projects/pipeline_schedules_controller_spec.rb'
- 'spec/controllers/projects/registry/tags_controller_spec.rb'
- 'spec/controllers/projects/service_desk_controller_spec.rb'
- - 'spec/db/migration_spec.rb'
- - 'spec/finders/ci/pipelines_for_merge_request_finder_spec.rb'
- - 'spec/finders/group_descendants_finder_spec.rb'
- - 'spec/finders/group_members_finder_spec.rb'
- - 'spec/finders/template_finder_spec.rb'
- - 'spec/graphql/mutations/releases/update_spec.rb'
- - 'spec/graphql/resolvers/board_lists_resolver_spec.rb'
- - 'spec/graphql/resolvers/ci/config_resolver_spec.rb'
- - 'spec/graphql/resolvers/ci/group_runners_resolver_spec.rb'
- - 'spec/graphql/resolvers/ci/jobs_resolver_spec.rb'
- - 'spec/graphql/resolvers/ci/runners_resolver_spec.rb'
- - 'spec/graphql/resolvers/container_repositories_resolver_spec.rb'
- - 'spec/graphql/resolvers/container_repository_tags_resolver_spec.rb'
- - 'spec/graphql/resolvers/design_management/versions_resolver_spec.rb'
- - 'spec/graphql/resolvers/work_items_resolver_spec.rb'
- - 'spec/helpers/ci/builds_helper_spec.rb'
- - 'spec/helpers/sorting_helper_spec.rb'
- - 'spec/helpers/storage_helper_spec.rb'
- - 'spec/helpers/wiki_helper_spec.rb'
- - 'spec/initializers/00_rails_disable_joins_spec.rb'
- 'spec/lib/backup/gitaly_backup_spec.rb'
- 'spec/lib/banzai/filter/repository_link_filter_spec.rb'
- 'spec/lib/gitlab/asciidoc_spec.rb'
@@ -96,26 +76,6 @@ Layout/HashAlignment:
- 'spec/lib/gitlab/metrics/subscribers/action_view_spec.rb'
- 'spec/lib/gitlab/metrics/subscribers/active_record_spec.rb'
- 'spec/lib/gitlab/metrics/subscribers/load_balancing_spec.rb'
- - 'spec/lib/gitlab/metrics/web_transaction_spec.rb'
- - 'spec/lib/gitlab/omniauth_initializer_spec.rb'
- - 'spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb'
- - 'spec/lib/gitlab/sidekiq_death_handler_spec.rb'
- - 'spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb'
- - 'spec/lib/gitlab/slug/environment_spec.rb'
- - 'spec/lib/gitlab/tracking_spec.rb'
- - 'spec/lib/gitlab/usage_data/topology_spec.rb'
- - 'spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb'
- - 'spec/lib/gitlab/usage_data_counters/note_counter_spec.rb'
- - 'spec/lib/gitlab/usage_data_spec.rb'
- - 'spec/lib/gitlab/utils_spec.rb'
- - 'spec/lib/gitlab/word_diff/parser_spec.rb'
- - 'spec/lib/marginalia_spec.rb'
- - 'spec/lib/security/ci_configuration/sast_build_action_spec.rb'
- - 'spec/mailers/emails/pipelines_spec.rb'
- - 'spec/migrations/20210804150320_create_base_work_item_types_spec.rb'
- - 'spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb'
- - 'spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb'
- - 'spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb'
- 'spec/models/ci/build_spec.rb'
- 'spec/models/ci/pipeline_spec.rb'
- 'spec/models/ci/processable_spec.rb'
diff --git a/app/views/projects/project_templates/_template.html.haml b/app/views/projects/project_templates/_template.html.haml
index d0fdd3a729a..9dde86f77b4 100644
--- a/app/views/projects/project_templates/_template.html.haml
+++ b/app/views/projects/project_templates/_template.html.haml
@@ -1,4 +1,4 @@
-.template-option.d-flex.align-items-center{ data: { qa_selector: 'template_option_row' } }
+.template-option.d-flex.align-items-center{ data: { qa_selector: 'template_option_container' } }
.logo.gl-mr-3.px-1
= image_tag template.logo, size: 32, class: "btn-template-icon icon-#{template.name}"
.description
diff --git a/doc/ci/index.md b/doc/ci/index.md
index 80752830b85..68cddaf24e8 100644
--- a/doc/ci/index.md
+++ b/doc/ci/index.md
@@ -146,6 +146,13 @@ See also the [Why CI/CD?](https://docs.google.com/presentation/d/1OGgk2Tcxbpl7DJ
As GitLab CI/CD has evolved, certain breaking changes have
been necessary.
+#### 15.0 and later
+
+Going forward, all breaking changes are documented on the following pages:
+
+- [Deprecations](../update/deprecations.md)
+- [Removals](../update/removals.md)
+
#### 14.0
- No breaking changes.
diff --git a/doc/user/group/manage.md b/doc/user/group/manage.md
index 45f96d8e18b..57070658355 100644
--- a/doc/user/group/manage.md
+++ b/doc/user/group/manage.md
@@ -184,9 +184,10 @@ To remove a member from a group:
1. Go to the group.
1. From the left menu, select **Group information > Members**.
-1. Next to the member you want to remove, select **Delete**.
-1. Optional. On the **Remove member** confirmation box, select the
- **Also unassign this user from linked issues and merge requests** checkbox.
+1. Next to the member you want to remove, select **Remove member**.
+1. Optional. On the **Remove member** confirmation box:
+ - To remove direct user membership from subgroups and projects, select the **Also remove direct user membership from subgroups and projects** checkbox.
+ - To unassign the user from linked issues and merge requests, select the **Also unassign this user from linked issues and merge requests** checkbox.
1. Select **Remove member**.
## Add projects to a group
diff --git a/lib/gitlab/database/migrations/base_background_runner.rb b/lib/gitlab/database/migrations/base_background_runner.rb
index a9440cafd30..76982a9da9b 100644
--- a/lib/gitlab/database/migrations/base_background_runner.rb
+++ b/lib/gitlab/database/migrations/base_background_runner.rb
@@ -40,7 +40,7 @@ module Gitlab
instrumentation = Instrumentation.new(result_dir: per_background_migration_result_dir)
batch_names = (1..).each.lazy.map { |i| "batch_#{i}" }
- jobs.shuffle.each do |j|
+ jobs.each do |j|
break if run_until <= Time.current
instrumentation.observe(version: nil,
diff --git a/lib/gitlab/database/migrations/test_background_runner.rb b/lib/gitlab/database/migrations/test_background_runner.rb
index f7713237b38..6da2e098d43 100644
--- a/lib/gitlab/database/migrations/test_background_runner.rb
+++ b/lib/gitlab/database/migrations/test_background_runner.rb
@@ -15,6 +15,7 @@ module Gitlab
def jobs_by_migration_name
traditional_background_migrations.group_by { |j| class_name_for_job(j) }
+ .transform_values(&:shuffle)
end
private
diff --git a/lib/gitlab/database/migrations/test_batched_background_runner.rb b/lib/gitlab/database/migrations/test_batched_background_runner.rb
index f38d847b0e8..c27ae6a2c5d 100644
--- a/lib/gitlab/database/migrations/test_batched_background_runner.rb
+++ b/lib/gitlab/database/migrations/test_batched_background_runner.rb
@@ -4,6 +4,7 @@ module Gitlab
module Database
module Migrations
class TestBatchedBackgroundRunner < BaseBackgroundRunner
+ include Gitlab::Database::DynamicModelHelpers
attr_reader :connection
def initialize(result_dir:, connection:)
@@ -18,31 +19,81 @@ module Gitlab
.to_h do |migration|
batching_strategy = migration.batch_class.new(connection: connection)
- all_migration_jobs = []
+ smallest_batch_start = migration.next_min_value
- min_value = migration.next_min_value
+ table_max_value = define_batchable_model(migration.table_name, connection: connection)
+ .maximum(migration.column_name)
- while (next_bounds = batching_strategy.next_batch(
- migration.table_name,
- migration.column_name,
- batch_min_value: min_value,
- batch_size: migration.batch_size,
- job_arguments: migration.job_arguments
- ))
+ largest_batch_start = table_max_value - migration.batch_size
+
+ # variance is the portion of the batch range that we shrink between variance * 0 and variance * 1
+ # to pick actual batches to sample.
+ variance = largest_batch_start - smallest_batch_start
+
+ batch_starts = uniform_fractions
+ .lazy # frac varies from 0 to 1, values in smallest_batch_start..largest_batch_start
+ .map { |frac| (variance * frac).to_i + smallest_batch_start }
+
+ # Track previously run batches so that we stop sampling if a new batch would intersect an older one
+ completed_batches = []
+
+ jobs_to_sample = batch_starts
+ # Stop sampling if a batch would intersect a previous batch
+ .take_while { |start| completed_batches.none? { |batch| batch.cover?(start) } }
+ .map do |batch_start|
+ next_bounds = batching_strategy.next_batch(
+ migration.table_name,
+ migration.column_name,
+ batch_min_value: batch_start,
+ batch_size: migration.batch_size,
+ job_arguments: migration.job_arguments
+ )
batch_min, batch_max = next_bounds
- all_migration_jobs << migration.create_batched_job!(batch_min, batch_max)
- min_value = batch_max + 1
+ job = migration.create_batched_job!(batch_min, batch_max)
+
+ completed_batches << (batch_min..batch_max)
+
+ job
end
- [migration.job_class_name, all_migration_jobs]
+ [migration.job_class_name, jobs_to_sample]
end
end
def run_job(job)
Gitlab::Database::BackgroundMigration::BatchedMigrationWrapper.new(connection: connection).perform(job)
end
+
+ def uniform_fractions
+ Enumerator.new do |y|
+ # Generates equally distributed fractions between 0 and 1, with increasing detail as more are pulled from
+ # the enumerator.
+ # 0, 1 (special case)
+ # 1/2
+ # 1/4, 3/4
+ # 1/8, 3/8, 5/8, 7/8
+ # etc.
+ # The pattern here is at each outer loop, the denominator multiplies by 2, and at each inner loop,
+ # the numerator counts up all odd numbers 1 <= n < denominator.
+ y << 0
+ y << 1
+
+ # denominators are each increasing power of 2
+ denominators = (1..).lazy.map { |exponent| 2**exponent }
+
+ denominators.each do |denominator|
+ # Numerators at the current step are all odd numbers between 1 and the denominator
+ numerators = (1..denominator).step(2)
+
+ numerators.each do |numerator|
+ next_frac = numerator.fdiv(denominator)
+ y << next_frac
+ end
+ end
+ end
+ end
end
end
end
diff --git a/qa/qa.rb b/qa/qa.rb
index dd6462cfe27..99a8a34d6d8 100644
--- a/qa/qa.rb
+++ b/qa/qa.rb
@@ -51,7 +51,6 @@ module QA
"repo_by_url" => "RepoByURL",
"oauth" => "OAuth",
"saml_sso_sign_in" => "SamlSSOSignIn",
- "saml_sso_sign_up" => "SamlSSOSignUp",
"group_saml" => "GroupSAML",
"instance_saml" => "InstanceSAML",
"saml_sso" => "SamlSSO",
diff --git a/qa/qa/fixtures/package_managers/terraform/module_upload.yaml.erb b/qa/qa/fixtures/package_managers/terraform/module_upload.yaml.erb
new file mode 100644
index 00000000000..e7fd8a823d6
--- /dev/null
+++ b/qa/qa/fixtures/package_managers/terraform/module_upload.yaml.erb
@@ -0,0 +1,21 @@
+stages:
+ - upload
+
+upload:
+ stage: upload
+ image: curlimages/curl:latest
+ variables:
+ TERRAFORM_MODULE_DIR: ${CI_PROJECT_DIR} # The path to your Terraform module
+ TERRAFORM_MODULE_NAME: ${CI_PROJECT_NAME} # The name of your Terraform module
+ TERRAFORM_MODULE_SYSTEM: local # The system or provider your Terraform module targets (ex. local, aws, google)
+ TERRAFORM_MODULE_VERSION: ${CI_COMMIT_TAG} # Tag commits with SemVer for the version of your Terraform module to be published
+ script:
+ - TERRAFORM_MODULE_NAME=$(echo "${TERRAFORM_MODULE_NAME}" | tr " _" -) # module-name must not have spaces or underscores, so translate them to hyphens
+ - tar -vczf ${TERRAFORM_MODULE_NAME}-${TERRAFORM_MODULE_SYSTEM}-${TERRAFORM_MODULE_VERSION}.tgz -C ${TERRAFORM_MODULE_DIR} --exclude=./.git .
+ - 'curl --location --header "JOB-TOKEN: ${CI_JOB_TOKEN}"
+ --upload-file ${TERRAFORM_MODULE_NAME}-${TERRAFORM_MODULE_SYSTEM}-${TERRAFORM_MODULE_VERSION}.tgz
+ ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/terraform/modules/${TERRAFORM_MODULE_NAME}/${TERRAFORM_MODULE_SYSTEM}/${TERRAFORM_MODULE_VERSION}/file'
+ rules:
+ - if: $CI_COMMIT_TAG
+ tags:
+ - runner-for-<%= project.name %> \ No newline at end of file
diff --git a/qa/qa/page/component/project/templates.rb b/qa/qa/page/component/project/templates.rb
index 8baf15acdff..6e86455fc52 100644
--- a/qa/qa/page/component/project/templates.rb
+++ b/qa/qa/page/component/project/templates.rb
@@ -5,7 +5,7 @@ module QA
module Project
module Templates
def use_template_for_project(project_name)
- within find_element(:template_option_row, text: project_name) do
+ within find_element(:template_option_container, text: project_name) do
click_element :use_template_button
end
end
diff --git a/qa/qa/page/project/new.rb b/qa/qa/page/project/new.rb
index bb4fb84f2d2..fd650d8ca20 100644
--- a/qa/qa/page/project/new.rb
+++ b/qa/qa/page/project/new.rb
@@ -23,7 +23,7 @@ module QA
view 'app/views/projects/project_templates/_template.html.haml' do
element :use_template_button
- element :template_option_row
+ element :template_option_container
end
view 'app/assets/javascripts/projects/new/components/new_project_url_select.vue' do
diff --git a/qa/qa/page/project/packages/index.rb b/qa/qa/page/project/packages/index.rb
index 86a86c05c12..bd19f0eabaa 100644
--- a/qa/qa/page/project/packages/index.rb
+++ b/qa/qa/page/project/packages/index.rb
@@ -10,6 +10,11 @@ module QA
element :package_link
end
+ view 'app/assets/javascripts/packages_and_registries/infrastructure_registry/shared/package_list_row.vue' do
+ element :package_row
+ element :package_link
+ end
+
def click_package(name)
click_element(:package_link, text: name)
end
@@ -18,6 +23,10 @@ module QA
has_element?(:package_link, text: name, wait: 20)
end
+ def has_module?(name)
+ has_element?(:package_link, text: name, wait: 20)
+ end
+
def has_no_package?(name)
has_no_element?(:package_link, text: name)
end
diff --git a/qa/qa/page/project/sub_menus/packages.rb b/qa/qa/page/project/sub_menus/packages.rb
index 88e2101a86d..f2084a094de 100644
--- a/qa/qa/page/project/sub_menus/packages.rb
+++ b/qa/qa/page/project/sub_menus/packages.rb
@@ -23,6 +23,14 @@ module QA
end
end
+ def go_to_infrastructure_registry
+ hover_registry do
+ within_submenu do
+ click_link('Infrastructure Registry')
+ end
+ end
+ end
+
private
def hover_registry
diff --git a/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb b/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb
new file mode 100644
index 00000000000..6ce395affc7
--- /dev/null
+++ b/qa/qa/specs/features/browser_ui/5_package/infrastructure_registry/terraform_module_registry_spec.rb
@@ -0,0 +1,81 @@
+# frozen_string_literal: true
+
+module QA
+ RSpec.describe 'Package', :orchestrated, :packages do
+ describe 'Terraform Module Registry' do
+ include Runtime::Fixtures
+
+ let(:group) { Resource::Group.fabricate_via_api! }
+
+ let(:imported_project) do
+ Resource::ProjectImportedFromURL.fabricate_via_browser_ui! do |project|
+ project.name = 'terraform-module-test'
+ project.group = group
+ project.gitlab_repository_path = 'https://gitlab.com/mattkasa/terraform-module-test.git'
+ end
+ end
+
+ let(:runner) do
+ Resource::Runner.fabricate! do |runner|
+ runner.name = "qa-runner-#{Time.now.to_i}"
+ runner.tags = ["runner-for-#{imported_project.name}"]
+ runner.executor = :docker
+ runner.project = imported_project
+ runner.token = group.reload!.runners_token
+ end
+ end
+
+ before do
+ Flow::Login.sign_in
+
+ imported_project
+ runner
+ end
+
+ after do
+ runner.remove_via_api!
+ end
+
+ it 'publishes a module', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/371583' do
+ Support::Retrier.retry_on_exception(max_attempts: 3, sleep_interval: 2) do
+ Resource::Repository::Commit.fabricate_via_api! do |commit|
+ terraform_module_yaml = ERB.new(
+ read_fixture('package_managers/terraform', 'module_upload.yaml.erb')
+ ).result(binding)
+ commit.project = imported_project
+ commit.commit_message = 'Add gitlab-ci.yaml file'
+ commit.update_files([
+ {
+ file_path: '.gitlab-ci.yml',
+ content: terraform_module_yaml
+ }
+ ]
+ )
+ end
+ end
+
+ Resource::Tag.fabricate_via_api! do |tag|
+ tag.project = imported_project
+ tag.ref = imported_project.default_branch
+ tag.name = "1.0.0"
+ end
+
+ Flow::Pipeline.visit_latest_pipeline
+
+ Page::Project::Pipeline::Show.perform do |pipeline|
+ pipeline.click_job('upload')
+ end
+
+ Page::Project::Job::Show.perform do |job|
+ expect(job).to be_successful(timeout: 800)
+ end
+
+ Page::Project::Menu.perform(&:go_to_infrastructure_registry)
+
+ Page::Project::Packages::Index.perform do |index|
+ expect(index).to have_module("#{imported_project.name}/local")
+ end
+ end
+ end
+ end
+end
diff --git a/spec/benchmarks/banzai_benchmark.rb b/spec/benchmarks/banzai_benchmark.rb
index 86f7ee7e90b..7a60825c1e6 100644
--- a/spec/benchmarks/banzai_benchmark.rb
+++ b/spec/benchmarks/banzai_benchmark.rb
@@ -82,6 +82,11 @@ RSpec.describe 'GitLab Markdown Benchmark', :aggregate_failures do
it 'benchmarks all filters in the PlainMarkdownPipeline' do
benchmark_pipeline_filters(:plain_markdown)
end
+
+ it 'benchmarks specified filters in the FullPipeline' do
+ filter_klass_list = [Banzai::Filter::MathFilter]
+ benchmark_pipeline_filters(:full, filter_klass_list)
+ end
end
# build up the source text for each filter
@@ -105,7 +110,7 @@ RSpec.describe 'GitLab Markdown Benchmark', :aggregate_failures do
filter_source
end
- def benchmark_pipeline_filters(pipeline_type)
+ def benchmark_pipeline_filters(pipeline_type, filter_klass_list = nil)
pipeline = Banzai::Pipeline[pipeline_type]
filter_source = build_filter_text(pipeline, markdown_text)
@@ -114,7 +119,8 @@ RSpec.describe 'GitLab Markdown Benchmark', :aggregate_failures do
Benchmark.ips do |x|
x.config(time: 10, warmup: 2)
- pipeline.filters.each do |filter_klass|
+ filters = filter_klass_list || pipeline.filters
+ filters.each do |filter_klass|
label = filter_klass.name.demodulize.delete_suffix('Filter').truncate(20)
x.report(label) do
diff --git a/spec/db/migration_spec.rb b/spec/db/migration_spec.rb
index 7987c78b423..7751bfd989d 100644
--- a/spec/db/migration_spec.rb
+++ b/spec/db/migration_spec.rb
@@ -8,10 +8,10 @@ RSpec.describe 'Migrations Validation' do
# The range describes the timestamps that given migration helper can be used
let(:all_migration_classes) do
{
- 2022_01_26_21_06_58.. => Gitlab::Database::Migration[2.0],
+ 2022_01_26_21_06_58.. => Gitlab::Database::Migration[2.0],
2021_09_01_15_33_24..2022_04_25_12_06_03 => Gitlab::Database::Migration[1.0],
2021_05_31_05_39_16..2021_09_01_15_33_24 => ActiveRecord::Migration[6.1],
- ..2021_05_31_05_39_16 => ActiveRecord::Migration[6.0]
+ ..2021_05_31_05_39_16 => ActiveRecord::Migration[6.0]
}
end
diff --git a/spec/finders/ci/pipelines_for_merge_request_finder_spec.rb b/spec/finders/ci/pipelines_for_merge_request_finder_spec.rb
index a7cf041f553..6e218db1254 100644
--- a/spec/finders/ci/pipelines_for_merge_request_finder_spec.rb
+++ b/spec/finders/ci/pipelines_for_merge_request_finder_spec.rb
@@ -126,7 +126,7 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
let!(:pipeline) do
create(:ci_empty_pipeline, project: project,
- sha: merge_request.diff_head_sha, ref: merge_request.source_branch)
+ sha: merge_request.diff_head_sha, ref: merge_request.source_branch)
end
it 'returns pipelines from diff_head_sha' do
@@ -140,7 +140,7 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
let!(:branch_pipeline) do
create(:ci_pipeline, source: :push, project: project,
- ref: source_ref, sha: merge_request.merge_request_diff.head_commit_sha)
+ ref: source_ref, sha: merge_request.merge_request_diff.head_commit_sha)
end
let!(:tag_pipeline) do
@@ -149,12 +149,12 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
let!(:detached_merge_request_pipeline) do
create(:ci_pipeline, source: :merge_request_event, project: project,
- ref: source_ref, sha: shas.second, merge_request: merge_request)
+ ref: source_ref, sha: shas.second, merge_request: merge_request)
end
let(:merge_request) do
create(:merge_request, source_project: project, source_branch: source_ref,
- target_project: project, target_branch: target_ref)
+ target_project: project, target_branch: target_ref)
end
let(:project) { create(:project, :repository) }
@@ -167,12 +167,12 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
context 'when there are a branch pipeline and a merge request pipeline' do
let!(:branch_pipeline_2) do
create(:ci_pipeline, source: :push, project: project,
- ref: source_ref, sha: shas.first)
+ ref: source_ref, sha: shas.first)
end
let!(:detached_merge_request_pipeline_2) do
create(:ci_pipeline, source: :merge_request_event, project: project,
- ref: source_ref, sha: shas.first, merge_request: merge_request)
+ ref: source_ref, sha: shas.first, merge_request: merge_request)
end
it 'returns merge request pipelines first' do
@@ -184,7 +184,7 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
context 'when there are multiple merge request pipelines from the same branch' do
let!(:branch_pipeline_2) do
create(:ci_pipeline, source: :push, project: project,
- ref: source_ref, sha: shas.first)
+ ref: source_ref, sha: shas.first)
end
let!(:branch_pipeline_with_sha_not_belonging_to_merge_request) do
@@ -193,12 +193,12 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
let!(:detached_merge_request_pipeline_2) do
create(:ci_pipeline, source: :merge_request_event, project: project,
- ref: source_ref, sha: shas.first, merge_request: merge_request_2)
+ ref: source_ref, sha: shas.first, merge_request: merge_request_2)
end
let(:merge_request_2) do
create(:merge_request, source_project: project, source_branch: source_ref,
- target_project: project, target_branch: 'stable')
+ target_project: project, target_branch: 'stable')
end
before do
@@ -220,7 +220,7 @@ RSpec.describe Ci::PipelinesForMergeRequestFinder do
context 'when detached merge request pipeline is run on head ref of the merge request' do
let!(:detached_merge_request_pipeline) do
create(:ci_pipeline, source: :merge_request_event, project: project,
- ref: merge_request.ref_path, sha: shas.second, merge_request: merge_request)
+ ref: merge_request.ref_path, sha: shas.second, merge_request: merge_request)
end
it 'sets the head ref of the merge request to the pipeline ref' do
diff --git a/spec/finders/group_descendants_finder_spec.rb b/spec/finders/group_descendants_finder_spec.rb
index 5c5db874e85..2a9e887450c 100644
--- a/spec/finders/group_descendants_finder_spec.rb
+++ b/spec/finders/group_descendants_finder_spec.rb
@@ -131,7 +131,7 @@ RSpec.describe GroupDescendantsFinder do
project = create(:project, namespace: group)
other_project = create(:project)
other_project.project_group_links.create!(group: group,
- group_access: Gitlab::Access::MAINTAINER)
+ group_access: Gitlab::Access::MAINTAINER)
expect(finder.execute).to contain_exactly(project)
end
@@ -231,8 +231,8 @@ RSpec.describe GroupDescendantsFinder do
other_subgroup.add_developer(other_user)
finder = described_class.new(current_user: other_user,
- parent_group: group,
- params: params)
+ parent_group: group,
+ params: params)
expect(finder.execute).to contain_exactly(other_subgroup, public_subgroup, other_subsubgroup)
end
diff --git a/spec/finders/group_members_finder_spec.rb b/spec/finders/group_members_finder_spec.rb
index 6a97dfae8fb..0d1b58e2636 100644
--- a/spec/finders/group_members_finder_spec.rb
+++ b/spec/finders/group_members_finder_spec.rb
@@ -21,10 +21,10 @@ RSpec.describe GroupMembersFinder, '#execute' do
let(:groups) do
{
- group: group,
- sub_group: sub_group,
- sub_sub_group: sub_sub_group,
- public_shared_group: public_shared_group,
+ group: group,
+ sub_group: sub_group,
+ sub_sub_group: sub_sub_group,
+ public_shared_group: public_shared_group,
private_shared_group: private_shared_group
}
end
@@ -32,25 +32,25 @@ RSpec.describe GroupMembersFinder, '#execute' do
context 'relations' do
let!(:members) do
{
- user1_sub_sub_group: create(:group_member, :maintainer, group: sub_sub_group, user: user1),
- user1_sub_group: create(:group_member, :developer, group: sub_group, user: user1),
- user1_group: create(:group_member, :reporter, group: group, user: user1),
- user1_public_shared_group: create(:group_member, :maintainer, group: public_shared_group, user: user1),
+ user1_sub_sub_group: create(:group_member, :maintainer, group: sub_sub_group, user: user1),
+ user1_sub_group: create(:group_member, :developer, group: sub_group, user: user1),
+ user1_group: create(:group_member, :reporter, group: group, user: user1),
+ user1_public_shared_group: create(:group_member, :maintainer, group: public_shared_group, user: user1),
user1_private_shared_group: create(:group_member, :maintainer, group: private_shared_group, user: user1),
- user2_sub_sub_group: create(:group_member, :reporter, group: sub_sub_group, user: user2),
- user2_sub_group: create(:group_member, :developer, group: sub_group, user: user2),
- user2_group: create(:group_member, :maintainer, group: group, user: user2),
- user2_public_shared_group: create(:group_member, :developer, group: public_shared_group, user: user2),
- user2_private_shared_group: create(:group_member, :developer, group: private_shared_group, user: user2),
- user3_sub_sub_group: create(:group_member, :developer, group: sub_sub_group, user: user3, expires_at: 1.day.from_now),
- user3_sub_group: create(:group_member, :developer, group: sub_group, user: user3, expires_at: 2.days.from_now),
- user3_group: create(:group_member, :reporter, group: group, user: user3),
- user3_public_shared_group: create(:group_member, :reporter, group: public_shared_group, user: user3),
- user3_private_shared_group: create(:group_member, :reporter, group: private_shared_group, user: user3),
- user4_sub_sub_group: create(:group_member, :reporter, group: sub_sub_group, user: user4),
- user4_sub_group: create(:group_member, :developer, group: sub_group, user: user4, expires_at: 1.day.from_now),
- user4_group: create(:group_member, :developer, group: group, user: user4, expires_at: 2.days.from_now),
- user4_public_shared_group: create(:group_member, :developer, group: public_shared_group, user: user4),
+ user2_sub_sub_group: create(:group_member, :reporter, group: sub_sub_group, user: user2),
+ user2_sub_group: create(:group_member, :developer, group: sub_group, user: user2),
+ user2_group: create(:group_member, :maintainer, group: group, user: user2),
+ user2_public_shared_group: create(:group_member, :developer, group: public_shared_group, user: user2),
+ user2_private_shared_group: create(:group_member, :developer, group: private_shared_group, user: user2),
+ user3_sub_sub_group: create(:group_member, :developer, group: sub_sub_group, user: user3, expires_at: 1.day.from_now),
+ user3_sub_group: create(:group_member, :developer, group: sub_group, user: user3, expires_at: 2.days.from_now),
+ user3_group: create(:group_member, :reporter, group: group, user: user3),
+ user3_public_shared_group: create(:group_member, :reporter, group: public_shared_group, user: user3),
+ user3_private_shared_group: create(:group_member, :reporter, group: private_shared_group, user: user3),
+ user4_sub_sub_group: create(:group_member, :reporter, group: sub_sub_group, user: user4),
+ user4_sub_group: create(:group_member, :developer, group: sub_group, user: user4, expires_at: 1.day.from_now),
+ user4_group: create(:group_member, :developer, group: group, user: user4, expires_at: 2.days.from_now),
+ user4_public_shared_group: create(:group_member, :developer, group: public_shared_group, user: user4),
user4_private_shared_group: create(:group_member, :developer, group: private_shared_group, user: user4),
user5_private_shared_group: create(:group_member, :developer, group: private_shared_group, user: user5)
}
diff --git a/spec/finders/template_finder_spec.rb b/spec/finders/template_finder_spec.rb
index 8e2426e697b..21fea7863ff 100644
--- a/spec/finders/template_finder_spec.rb
+++ b/spec/finders/template_finder_spec.rb
@@ -7,10 +7,10 @@ RSpec.describe TemplateFinder do
let_it_be(:template_files) do
{
- "Dockerfile/project_dockerfiles_template.dockerfile" => "project_dockerfiles_template content",
- "gitignore/project_gitignores_template.gitignore" => "project_gitignores_template content",
- "gitlab-ci/project_gitlab_ci_ymls_template.yml" => "project_gitlab_ci_ymls_template content",
- ".gitlab/issue_templates/project_issues_template.md" => "project_issues_template content",
+ "Dockerfile/project_dockerfiles_template.dockerfile" => "project_dockerfiles_template content",
+ "gitignore/project_gitignores_template.gitignore" => "project_gitignores_template content",
+ "gitlab-ci/project_gitlab_ci_ymls_template.yml" => "project_gitlab_ci_ymls_template content",
+ ".gitlab/issue_templates/project_issues_template.md" => "project_issues_template content",
".gitlab/merge_request_templates/project_merge_requests_template.md" => "project_merge_requests_template content"
}
end
diff --git a/spec/graphql/mutations/releases/update_spec.rb b/spec/graphql/mutations/releases/update_spec.rb
index 15b10ea0648..0cf10e03fb1 100644
--- a/spec/graphql/mutations/releases/update_spec.rb
+++ b/spec/graphql/mutations/releases/update_spec.rb
@@ -18,8 +18,8 @@ RSpec.describe Mutations::Releases::Update do
let_it_be(:release) do
create(:release, project: project, tag: tag, name: name,
- description: description, released_at: released_at,
- created_at: created_at, milestones: [milestone_12_3, milestone_12_4])
+ description: description, released_at: released_at,
+ created_at: created_at, milestones: [milestone_12_3, milestone_12_4])
end
let(:mutation) { described_class.new(object: nil, context: { current_user: current_user }, field: nil) }
diff --git a/spec/graphql/resolvers/board_lists_resolver_spec.rb b/spec/graphql/resolvers/board_lists_resolver_spec.rb
index c882ad7c818..2fb7c5c4717 100644
--- a/spec/graphql/resolvers/board_lists_resolver_spec.rb
+++ b/spec/graphql/resolvers/board_lists_resolver_spec.rb
@@ -101,7 +101,7 @@ RSpec.describe Resolvers::BoardListsResolver do
def resolve_board_lists(args: {}, current_user: user)
resolve(described_class, obj: board, args: args, ctx: { current_user: current_user },
- arg_style: :internal
+ arg_style: :internal
)
end
end
diff --git a/spec/graphql/resolvers/ci/config_resolver_spec.rb b/spec/graphql/resolvers/ci/config_resolver_spec.rb
index dc030b1313b..692bdf58784 100644
--- a/spec/graphql/resolvers/ci/config_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/config_resolver_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe Resolvers::Ci::ConfigResolver do
subject(:response) do
resolve(described_class,
args: { project_path: project.full_path, content: content, sha: sha },
- ctx: { current_user: user })
+ ctx: { current_user: user })
end
shared_examples 'a valid config file' do
diff --git a/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb b/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb
index f99f48f5b07..57b2fcbea63 100644
--- a/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/group_runners_resolver_spec.rb
@@ -8,7 +8,7 @@ RSpec.describe Resolvers::Ci::GroupRunnersResolver do
describe '#resolve' do
subject do
resolve(described_class, obj: obj, ctx: { current_user: user }, args: args,
- arg_style: :internal)
+ arg_style: :internal)
end
include_context 'runners resolver setup'
diff --git a/spec/graphql/resolvers/ci/jobs_resolver_spec.rb b/spec/graphql/resolvers/ci/jobs_resolver_spec.rb
index 6c228861ddf..80a70938dc4 100644
--- a/spec/graphql/resolvers/ci/jobs_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/jobs_resolver_spec.rb
@@ -38,7 +38,7 @@ RSpec.describe Resolvers::Ci::JobsResolver do
::Types::Security::ReportTypeEnum.values['DAST'].value
]
jobs = resolve(described_class, obj: pipeline, args: { security_report_types: report_types },
- arg_style: :internal)
+ arg_style: :internal)
expect(jobs).to contain_exactly(
have_attributes(name: 'DAST job'),
diff --git a/spec/graphql/resolvers/ci/runners_resolver_spec.rb b/spec/graphql/resolvers/ci/runners_resolver_spec.rb
index 8586d359336..4038192a68a 100644
--- a/spec/graphql/resolvers/ci/runners_resolver_spec.rb
+++ b/spec/graphql/resolvers/ci/runners_resolver_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe Resolvers::Ci::RunnersResolver do
subject do
resolve(described_class, obj: obj, ctx: { current_user: user }, args: args,
- arg_style: :internal)
+ arg_style: :internal)
end
include_context 'runners resolver setup'
diff --git a/spec/graphql/resolvers/container_repositories_resolver_spec.rb b/spec/graphql/resolvers/container_repositories_resolver_spec.rb
index ed922259903..8cbb366f873 100644
--- a/spec/graphql/resolvers/container_repositories_resolver_spec.rb
+++ b/spec/graphql/resolvers/container_repositories_resolver_spec.rb
@@ -17,7 +17,7 @@ RSpec.describe Resolvers::ContainerRepositoriesResolver do
subject do
resolve(described_class, ctx: { current_user: user }, args: args, obj: object,
- arg_style: :internal)
+ arg_style: :internal)
end
shared_examples 'returning container repositories' do
diff --git a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
index 9747f663759..3ed3fe76267 100644
--- a/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
+++ b/spec/graphql/resolvers/container_repository_tags_resolver_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Resolvers::ContainerRepositoryTagsResolver do
describe '#resolve' do
let(:resolver) do
resolve(described_class, ctx: { current_user: user }, obj: repository, args: args,
- arg_style: :internal)
+ arg_style: :internal)
end
before do
diff --git a/spec/graphql/resolvers/design_management/versions_resolver_spec.rb b/spec/graphql/resolvers/design_management/versions_resolver_spec.rb
index 3a2ed445484..eb39e5bafc5 100644
--- a/spec/graphql/resolvers/design_management/versions_resolver_spec.rb
+++ b/spec/graphql/resolvers/design_management/versions_resolver_spec.rb
@@ -82,7 +82,7 @@ RSpec.describe Resolvers::DesignManagement::VersionsResolver do
let(:params) do
{
earlier_or_equal_to_sha: first_version.sha,
- earlier_or_equal_to_id: global_id_of(first_version)
+ earlier_or_equal_to_id: global_id_of(first_version)
}
end
@@ -95,7 +95,7 @@ RSpec.describe Resolvers::DesignManagement::VersionsResolver do
let(:params) do
{
earlier_or_equal_to_sha: first_version.sha,
- earlier_or_equal_to_id: global_id_of(other_version)
+ earlier_or_equal_to_id: global_id_of(other_version)
}
end
diff --git a/spec/graphql/resolvers/work_items_resolver_spec.rb b/spec/graphql/resolvers/work_items_resolver_spec.rb
index ef7cc0daa0c..d89ccc7f806 100644
--- a/spec/graphql/resolvers/work_items_resolver_spec.rb
+++ b/spec/graphql/resolvers/work_items_resolver_spec.rb
@@ -19,13 +19,13 @@ RSpec.describe Resolvers::WorkItemsResolver do
let_it_be(:item2) do
create(:work_item, project: project, state: :closed, title: 'foo',
- created_at: 1.hour.ago, updated_at: 1.hour.ago, closed_at:
+ created_at: 1.hour.ago, updated_at: 1.hour.ago, closed_at:
1.hour.ago)
end
let_it_be(:item3) do
create(:work_item, project: other_project, state: :closed, title: 'foo',
- created_at: 1.hour.ago, updated_at: 1.hour.ago, closed_at:
+ created_at: 1.hour.ago, updated_at: 1.hour.ago, closed_at:
1.hour.ago)
end
diff --git a/spec/helpers/ci/builds_helper_spec.rb b/spec/helpers/ci/builds_helper_spec.rb
index ea3b5aac4ea..fa7bc3abf8b 100644
--- a/spec/helpers/ci/builds_helper_spec.rb
+++ b/spec/helpers/ci/builds_helper_spec.rb
@@ -106,7 +106,7 @@ RSpec.describe Ci::BuildsHelper do
expect(subject).to eq([{
id: failed_build.id,
failure: failed_build.present.callout_failure_message,
- failure_summary: helper.build_summary(failed_build)
+ failure_summary: helper.build_summary(failed_build)
}].to_json)
end
end
diff --git a/spec/helpers/sorting_helper_spec.rb b/spec/helpers/sorting_helper_spec.rb
index 1ee920d1c95..0b1f2b96fb3 100644
--- a/spec/helpers/sorting_helper_spec.rb
+++ b/spec/helpers/sorting_helper_spec.rb
@@ -74,11 +74,11 @@ RSpec.describe SortingHelper do
def project_common_options
{
- sort_value_latest_activity => sort_title_latest_activity,
+ sort_value_latest_activity => sort_title_latest_activity,
sort_value_recently_created => sort_title_created_date,
- sort_value_name => sort_title_name,
- sort_value_name_desc => sort_title_name_desc,
- sort_value_stars_desc => sort_title_stars
+ sort_value_name => sort_title_name,
+ sort_value_name_desc => sort_title_name_desc,
+ sort_value_stars_desc => sort_title_stars
}
end
@@ -90,11 +90,11 @@ RSpec.describe SortingHelper do
describe '#projects_sort_options_hash' do
it 'returns a hash of available sorting options' do
admin_options = project_common_options.merge({
- sort_value_oldest_activity => sort_title_oldest_activity,
- sort_value_oldest_created => sort_title_oldest_created,
+ sort_value_oldest_activity => sort_title_oldest_activity,
+ sort_value_oldest_created => sort_title_oldest_created,
sort_value_recently_created => sort_title_recently_created,
- sort_value_stars_desc => sort_title_most_stars,
- sort_value_largest_repo => sort_title_largest_repo
+ sort_value_stars_desc => sort_title_most_stars,
+ sort_value_largest_repo => sort_title_largest_repo
})
expect(projects_sort_options_hash).to eq(admin_options)
@@ -180,10 +180,10 @@ RSpec.describe SortingHelper do
describe '#projects_sort_option_titles' do
it 'returns a hash of titles for the sorting options' do
options = project_common_options.merge({
- sort_value_oldest_activity => sort_title_latest_activity,
- sort_value_oldest_created => sort_title_created_date,
- sort_value_name_desc => sort_title_name,
- sort_value_stars_asc => sort_title_stars
+ sort_value_oldest_activity => sort_title_latest_activity,
+ sort_value_oldest_created => sort_title_created_date,
+ sort_value_name_desc => sort_title_name,
+ sort_value_stars_asc => sort_title_stars
})
expect(projects_sort_option_titles).to eq(options)
@@ -198,10 +198,10 @@ RSpec.describe SortingHelper do
describe '#projects_sort_options_hash' do
it 'returns a hash of available sorting options' do
options = project_common_options.merge({
- sort_value_oldest_activity => sort_title_oldest_activity,
- sort_value_oldest_created => sort_title_oldest_created,
+ sort_value_oldest_activity => sort_title_oldest_activity,
+ sort_value_oldest_created => sort_title_oldest_created,
sort_value_recently_created => sort_title_recently_created,
- sort_value_stars_desc => sort_title_most_stars
+ sort_value_stars_desc => sort_title_most_stars
})
expect(projects_sort_options_hash).to eq(options)
@@ -219,9 +219,9 @@ RSpec.describe SortingHelper do
it 'returns a hash of available sorting options' do
expect(forks_sort_options_hash).to include({
sort_value_recently_created => sort_title_created_date,
- sort_value_oldest_created => sort_title_created_date,
- sort_value_latest_activity => sort_title_latest_activity,
- sort_value_oldest_activity => sort_title_latest_activity
+ sort_value_oldest_created => sort_title_created_date,
+ sort_value_latest_activity => sort_title_latest_activity,
+ sort_value_oldest_activity => sort_title_latest_activity
})
end
end
diff --git a/spec/helpers/storage_helper_spec.rb b/spec/helpers/storage_helper_spec.rb
index e0628fe9235..d42dd51b2a1 100644
--- a/spec/helpers/storage_helper_spec.rb
+++ b/spec/helpers/storage_helper_spec.rb
@@ -27,15 +27,15 @@ RSpec.describe StorageHelper do
create(:project,
namespace: namespace,
statistics: build(:project_statistics,
- namespace: namespace,
- repository_size: 10.kilobytes,
- wiki_size: 10.bytes,
- lfs_objects_size: 20.gigabytes,
- build_artifacts_size: 30.megabytes,
+ namespace: namespace,
+ repository_size: 10.kilobytes,
+ wiki_size: 10.bytes,
+ lfs_objects_size: 20.gigabytes,
+ build_artifacts_size: 30.megabytes,
pipeline_artifacts_size: 11.megabytes,
- snippets_size: 40.megabytes,
- packages_size: 12.megabytes,
- uploads_size: 15.megabytes))
+ snippets_size: 40.megabytes,
+ packages_size: 12.megabytes,
+ uploads_size: 15.megabytes))
end
let(:message) { 'Repository: 10 KB / Wikis: 10 Bytes / Build Artifacts: 30 MB / Pipeline Artifacts: 11 MB / LFS: 20 GB / Snippets: 40 MB / Packages: 12 MB / Uploads: 15 MB' }
diff --git a/spec/helpers/wiki_helper_spec.rb b/spec/helpers/wiki_helper_spec.rb
index 5adcbe3334d..75128d758f9 100644
--- a/spec/helpers/wiki_helper_spec.rb
+++ b/spec/helpers/wiki_helper_spec.rb
@@ -132,11 +132,11 @@ RSpec.describe WikiHelper do
it 'returns the tracking context' do
expect(subject).to eq(
- 'wiki-format' => :markdown,
- 'wiki-title-size' => 9,
- 'wiki-content-size' => 4,
+ 'wiki-format' => :markdown,
+ 'wiki-title-size' => 9,
+ 'wiki-content-size' => 4,
'wiki-directory-nest-level' => 2,
- 'wiki-container-type' => 'Project'
+ 'wiki-container-type' => 'Project'
)
end
diff --git a/spec/initializers/00_rails_disable_joins_spec.rb b/spec/initializers/00_rails_disable_joins_spec.rb
index 78e78b6810b..3b390f1ef17 100644
--- a/spec/initializers/00_rails_disable_joins_spec.rb
+++ b/spec/initializers/00_rails_disable_joins_spec.rb
@@ -98,8 +98,8 @@ RSpec.describe 'DisableJoins' do
primary_model.has_one :test_bridge, anonymous_class: bridge_model, foreign_key: :primary_record_id
bridge_model.belongs_to :test_secondary, anonymous_class: secondary_model, foreign_key: :secondary_record_id
- primary_model.has_one :test_secondary, through: :test_bridge, anonymous_class: secondary_model,
- disable_joins: -> { joins_disabled_flag }
+ primary_model.has_one :test_secondary,
+ through: :test_bridge, anonymous_class: secondary_model, disable_joins: -> { joins_disabled_flag }
primary_record = primary_model.create!
secondary_record = secondary_model.create!
@@ -149,7 +149,7 @@ RSpec.describe 'DisableJoins' do
primary_model.has_many :test_bridges, anonymous_class: bridge_model, foreign_key: :primary_record_id
bridge_model.has_many :test_secondaries, anonymous_class: secondary_model, foreign_key: :bridge_record_id
primary_model.has_many :test_secondaries, through: :test_bridges, anonymous_class: secondary_model,
- disable_joins: -> { disabled_join_flag }
+ disable_joins: -> { disabled_join_flag }
primary_record = primary_model.create!
bridge_record = bridge_model.create!(primary_record_id: primary_record.id)
diff --git a/spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb b/spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb
index 9451a6bd34a..3ac483c8ab7 100644
--- a/spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb
+++ b/spec/lib/gitlab/database/migrations/test_batched_background_runner_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe Gitlab::Database::Migrations::TestBatchedBackgroundRunner, :freez
connection.execute(<<~SQL)
CREATE TABLE #{table_name} (
id bigint primary key not null,
- data bigint
+ data bigint default 0
);
insert into #{table_name} (id) select i from generate_series(1, 1000) g(i);
@@ -40,10 +40,12 @@ RSpec.describe Gitlab::Database::Migrations::TestBatchedBackgroundRunner, :freez
:id, :data,
batch_size: 100,
job_interval: 5.minutes) # job_interval is skipped when testing
- described_class.new(result_dir: result_dir, connection: connection).run_jobs(for_duration: 1.minute)
- unmigrated_row_count = define_batchable_model(table_name).where('id != data').count
- expect(unmigrated_row_count).to eq(0)
+ # Expect that running sampling for this migration processes some of the rows. Sampling doesn't run
+ # over every row in the table, so this does not completely migrate the table.
+ expect { described_class.new(result_dir: result_dir, connection: connection).run_jobs(for_duration: 1.minute) }
+ .to change { define_batchable_model(table_name).where('id IS DISTINCT FROM data').count }
+ .by_at_most(-1)
end
end
@@ -62,7 +64,7 @@ RSpec.describe Gitlab::Database::Migrations::TestBatchedBackgroundRunner, :freez
described_class.new(result_dir: result_dir, connection: connection).run_jobs(for_duration: 3.minutes)
- expect(calls.count).to eq(10) # 1000 rows / batch size 100 = 10
+ expect(calls).not_to be_empty
end
context 'with multiple jobs to run' do
@@ -92,4 +94,19 @@ RSpec.describe Gitlab::Database::Migrations::TestBatchedBackgroundRunner, :freez
end
end
end
+
+ context 'choosing uniform batches to run' do
+ subject { described_class.new(result_dir: result_dir, connection: connection) }
+
+ describe '#uniform_fractions' do
+ it 'generates evenly distributed sequences of fractions' do
+ received = subject.uniform_fractions.take(9)
+ expected = [0, 1, 1.0 / 2, 1.0 / 4, 3.0 / 4, 1.0 / 8, 3.0 / 8, 5.0 / 8, 7.0 / 8]
+
+ # All the fraction numerators are small integers, and all denominators are powers of 2, so these
+ # fit perfectly into floating point numbers with zero loss of precision
+ expect(received).to eq(expected)
+ end
+ end
+ end
end
diff --git a/spec/lib/gitlab/metrics/web_transaction_spec.rb b/spec/lib/gitlab/metrics/web_transaction_spec.rb
index d6590efcf4f..dc59fa804c4 100644
--- a/spec/lib/gitlab/metrics/web_transaction_spec.rb
+++ b/spec/lib/gitlab/metrics/web_transaction_spec.rb
@@ -66,8 +66,8 @@ RSpec.describe Gitlab::Metrics::WebTransaction do
before do
route = double(:route, request_method: 'GET', path: '/:version/projects/:id/archive(.:format)')
endpoint = double(:endpoint, route: route,
- options: { for: API::Projects, path: [":id/archive"] },
- namespace: "/projects")
+ options: { for: API::Projects, path: [":id/archive"] },
+ namespace: "/projects")
env['api.endpoint'] = endpoint
diff --git a/spec/lib/gitlab/omniauth_initializer_spec.rb b/spec/lib/gitlab/omniauth_initializer_spec.rb
index c91b14a33ba..563c97fa2cb 100644
--- a/spec/lib/gitlab/omniauth_initializer_spec.rb
+++ b/spec/lib/gitlab/omniauth_initializer_spec.rb
@@ -31,7 +31,7 @@ RSpec.describe Gitlab::OmniauthInitializer do
context 'when there is an app_id and an app_secret, and an array of args' do
let(:provider) do
{
- 'name' => 'unknown',
+ 'name' => 'unknown',
'app_id' => 1,
'app_secret' => 2,
'args' => %w[one two three]
@@ -46,7 +46,7 @@ RSpec.describe Gitlab::OmniauthInitializer do
context 'when there is an app_id and an app_secret, and an array of args, and default values' do
let(:provider) do
{
- 'name' => 'unknown',
+ 'name' => 'unknown',
'app_id' => 1,
'app_secret' => 2,
'args' => %w[one two three]
@@ -68,7 +68,7 @@ RSpec.describe Gitlab::OmniauthInitializer do
context 'when there is an app_id and an app_secret, and a hash of args' do
let(:provider) do
{
- 'name' => 'unknown',
+ 'name' => 'unknown',
'app_id' => 1,
'app_secret' => 2,
'args' => { 'foo' => 100, 'bar' => 200, 'nested' => { 'value' => 300 } }
@@ -84,7 +84,7 @@ RSpec.describe Gitlab::OmniauthInitializer do
context 'when there is an app_id and an app_secret, and a hash of args, and default arguments' do
let(:provider) do
{
- 'name' => 'unknown',
+ 'name' => 'unknown',
'app_id' => 1,
'app_secret' => 2,
'args' => { 'foo' => 100, 'bar' => 200, 'nested' => { 'value' => 300 } }
@@ -106,7 +106,7 @@ RSpec.describe Gitlab::OmniauthInitializer do
context 'when there is an app_id and an app_secret, no args, and default values' do
let(:provider) do
{
- 'name' => 'unknown',
+ 'name' => 'unknown',
'app_id' => 1,
'app_secret' => 2
}
@@ -127,7 +127,7 @@ RSpec.describe Gitlab::OmniauthInitializer do
context 'when there are args, of an unsupported type' do
let(:provider) do
{
- 'name' => 'unknown',
+ 'name' => 'unknown',
'args' => 1
}
end
diff --git a/spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb b/spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb
index 635f572daef..dff04a2e509 100644
--- a/spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb
+++ b/spec/lib/gitlab/sidekiq_daemon/memory_killer_spec.rb
@@ -326,7 +326,7 @@ RSpec.describe Gitlab::SidekiqDaemon::MemoryKiller do
class: described_class.to_s,
signal: signal,
pid: pid,
- message: "sending Sidekiq worker PID-#{pid} #{signal} (#{explanation})")
+ message: "sending Sidekiq worker PID-#{pid} #{signal} (#{explanation})")
expect(Process).to receive(:kill).with(signal, pid).ordered
subject
@@ -340,7 +340,7 @@ RSpec.describe Gitlab::SidekiqDaemon::MemoryKiller do
class: described_class.to_s,
signal: signal,
pid: pid,
- message: "sending Sidekiq worker PGRP-#{pid} #{signal} (#{explanation})")
+ message: "sending Sidekiq worker PGRP-#{pid} #{signal} (#{explanation})")
expect(Process).to receive(:kill).with(signal, 0).ordered
subject
diff --git a/spec/lib/gitlab/sidekiq_death_handler_spec.rb b/spec/lib/gitlab/sidekiq_death_handler_spec.rb
index e3f9f8277a0..434642bf3ef 100644
--- a/spec/lib/gitlab/sidekiq_death_handler_spec.rb
+++ b/spec/lib/gitlab/sidekiq_death_handler_spec.rb
@@ -24,8 +24,8 @@ RSpec.describe Gitlab::SidekiqDeathHandler, :clean_gitlab_redis_queues do
expect(described_class.counter)
.to receive(:increment)
.with({ queue: 'test_queue', worker: 'TestWorker',
- urgency: 'low', external_dependencies: 'yes',
- feature_category: 'users', boundary: 'cpu' })
+ urgency: 'low', external_dependencies: 'yes',
+ feature_category: 'users', boundary: 'cpu' })
described_class.handler({ 'class' => 'TestWorker', 'queue' => 'test_queue' }, nil)
end
@@ -40,8 +40,8 @@ RSpec.describe Gitlab::SidekiqDeathHandler, :clean_gitlab_redis_queues do
expect(described_class.counter)
.to receive(:increment)
.with({ queue: 'test_queue', worker: 'TestWorker',
- urgency: '', external_dependencies: 'no',
- feature_category: '', boundary: '' })
+ urgency: '', external_dependencies: 'no',
+ feature_category: '', boundary: '' })
described_class.handler({ 'class' => 'TestWorker', 'queue' => 'test_queue' }, nil)
end
diff --git a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
index d6d24ea3a24..52b50a143fc 100644
--- a/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
+++ b/spec/lib/gitlab/sidekiq_middleware/server_metrics_spec.rb
@@ -22,39 +22,39 @@ RSpec.describe Gitlab::SidekiqMiddleware::ServerMetrics do
expect(completion_seconds_metric)
.to receive(:get).with({ queue: 'merge',
- worker: 'MergeWorker',
- urgency: 'high',
- external_dependencies: 'no',
- feature_category: 'source_code_management',
- boundary: '',
- job_status: 'done' })
+ worker: 'MergeWorker',
+ urgency: 'high',
+ external_dependencies: 'no',
+ feature_category: 'source_code_management',
+ boundary: '',
+ job_status: 'done' })
expect(completion_seconds_metric)
.to receive(:get).with({ queue: 'merge',
- worker: 'MergeWorker',
- urgency: 'high',
- external_dependencies: 'no',
- feature_category: 'source_code_management',
- boundary: '',
- job_status: 'fail' })
+ worker: 'MergeWorker',
+ urgency: 'high',
+ external_dependencies: 'no',
+ feature_category: 'source_code_management',
+ boundary: '',
+ job_status: 'fail' })
expect(completion_seconds_metric)
.to receive(:get).with({ queue: 'default',
- worker: 'Ci::BuildFinishedWorker',
- urgency: 'high',
- external_dependencies: 'no',
- feature_category: 'continuous_integration',
- boundary: 'cpu',
- job_status: 'done' })
+ worker: 'Ci::BuildFinishedWorker',
+ urgency: 'high',
+ external_dependencies: 'no',
+ feature_category: 'continuous_integration',
+ boundary: 'cpu',
+ job_status: 'done' })
expect(completion_seconds_metric)
.to receive(:get).with({ queue: 'default',
- worker: 'Ci::BuildFinishedWorker',
- urgency: 'high',
- external_dependencies: 'no',
- feature_category: 'continuous_integration',
- boundary: 'cpu',
- job_status: 'fail' })
+ worker: 'Ci::BuildFinishedWorker',
+ urgency: 'high',
+ external_dependencies: 'no',
+ feature_category: 'continuous_integration',
+ boundary: 'cpu',
+ job_status: 'fail' })
described_class.initialize_process_metrics
end
diff --git a/spec/lib/gitlab/slug/environment_spec.rb b/spec/lib/gitlab/slug/environment_spec.rb
index 5456501eb8b..e8f0fba27b2 100644
--- a/spec/lib/gitlab/slug/environment_spec.rb
+++ b/spec/lib/gitlab/slug/environment_spec.rb
@@ -7,21 +7,21 @@ RSpec.describe Gitlab::Slug::Environment do
{
"staging-12345678901234567" => "staging-123456789-q517sa",
"9-staging-123456789012345" => "env-9-staging-123-q517sa",
- "staging-1234567890123456" => "staging-1234567890123456",
+ "staging-1234567890123456" => "staging-1234567890123456",
"staging-1234567890123456-" => "staging-123456789-q517sa",
- "production" => "production",
- "PRODUCTION" => "production-q517sa",
- "review/1-foo" => "review-1-foo-q517sa",
- "1-foo" => "env-1-foo-q517sa",
- "1/foo" => "env-1-foo-q517sa",
- "foo-" => "foo",
- "foo--bar" => "foo-bar-q517sa",
- "foo**bar" => "foo-bar-q517sa",
- "*-foo" => "env-foo-q517sa",
- "staging-12345678-" => "staging-12345678",
+ "production" => "production",
+ "PRODUCTION" => "production-q517sa",
+ "review/1-foo" => "review-1-foo-q517sa",
+ "1-foo" => "env-1-foo-q517sa",
+ "1/foo" => "env-1-foo-q517sa",
+ "foo-" => "foo",
+ "foo--bar" => "foo-bar-q517sa",
+ "foo**bar" => "foo-bar-q517sa",
+ "*-foo" => "env-foo-q517sa",
+ "staging-12345678-" => "staging-12345678",
"staging-12345678-01234567" => "staging-12345678-q517sa",
- "" => "env-q517sa",
- nil => "env-q517sa"
+ "" => "env-q517sa",
+ nil => "env-q517sa"
}.each do |name, matcher|
before do
# ('a' * 64).to_i(16).to_s(36).last(6) gives 'q517sa'
diff --git a/spec/lib/gitlab/tracking_spec.rb b/spec/lib/gitlab/tracking_spec.rb
index 028c985f3b3..7f30d794aee 100644
--- a/spec/lib/gitlab/tracking_spec.rb
+++ b/spec/lib/gitlab/tracking_spec.rb
@@ -132,9 +132,16 @@ RSpec.describe Gitlab::Tracking do
expect(args[:context].last).to eq(other_context)
end
- described_class.event('category', 'action', label: 'label', property: 'property', value: 1.5,
- context: [other_context], project: project, user: user, namespace: namespace,
- extra_key_1: 'extra value 1', extra_key_2: 'extra value 2')
+ described_class.event('category', 'action',
+ label: 'label',
+ property: 'property',
+ value: 1.5,
+ context: [other_context],
+ project: project,
+ user: user,
+ namespace: namespace,
+ extra_key_1: 'extra value 1',
+ extra_key_2: 'extra value 2')
end
end
@@ -197,8 +204,15 @@ RSpec.describe Gitlab::Tracking do
expect(args[:extra_key_1]).to eq('extra value 1')
end
- described_class.definition('filename', category: nil, action: nil, label: 'label', property: '...',
- project: project, user: user, namespace: namespace, extra_key_1: 'extra value 1')
+ described_class.definition('filename',
+ category: nil,
+ action: nil,
+ label: 'label',
+ property: '...',
+ project: project,
+ user: user,
+ namespace: namespace,
+ extra_key_1: 'extra value 1')
end
end
diff --git a/spec/lib/gitlab/usage_data/topology_spec.rb b/spec/lib/gitlab/usage_data/topology_spec.rb
index 737580e3493..dfdf8eaabe8 100644
--- a/spec/lib/gitlab/usage_data/topology_spec.rb
+++ b/spec/lib/gitlab/usage_data/topology_spec.rb
@@ -187,7 +187,7 @@ RSpec.describe Gitlab::UsageData::Topology do
[
{
'metric' => { 'instance' => 'localhost:9100' },
- 'value' => [1000, '512']
+ 'value' => [1000, '512']
}
]
end
@@ -196,7 +196,7 @@ RSpec.describe Gitlab::UsageData::Topology do
[
{
'metric' => { 'instance' => 'localhost:9100' },
- 'value' => [1000, '0.35']
+ 'value' => [1000, '0.35']
}
]
end
@@ -224,23 +224,23 @@ RSpec.describe Gitlab::UsageData::Topology do
[
{
'metric' => { 'instance' => 'localhost:8080', 'job' => 'gitlab-rails' },
- 'value' => [1000, '10']
+ 'value' => [1000, '10']
},
{
'metric' => { 'instance' => '127.0.0.1:8090', 'job' => 'gitlab-sidekiq' },
- 'value' => [1000, '11']
+ 'value' => [1000, '11']
},
{
'metric' => { 'instance' => '0.0.0.0:9090', 'job' => 'prometheus' },
- 'value' => [1000, '12']
+ 'value' => [1000, '12']
},
{
'metric' => { 'instance' => '[::1]:1234', 'job' => 'redis' },
- 'value' => [1000, '13']
+ 'value' => [1000, '13']
},
{
'metric' => { 'instance' => '[::]:1234', 'job' => 'postgres' },
- 'value' => [1000, '14']
+ 'value' => [1000, '14']
}
]
end
@@ -640,7 +640,7 @@ RSpec.describe Gitlab::UsageData::Topology do
.and_return(result || [
{
'metric' => { 'instance' => 'instance1:8080', 'job' => 'gitlab-rails' },
- 'value' => [1000, '300']
+ 'value' => [1000, '300']
},
{
'metric' => { 'instance' => 'instance1:8090', 'job' => 'gitlab-sidekiq' },
diff --git a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb
index 3f44cfdcf27..74e63d219bd 100644
--- a/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/merge_request_activity_unique_counter_spec.rb
@@ -100,9 +100,9 @@ RSpec.describe Gitlab::UsageDataCounters::MergeRequestActivityUniqueCounter, :cl
subject
expect_snowplow_event(
- category: 'merge_requests',
+ category: 'merge_requests',
action: 'i_code_review_user_approve_mr',
- namespace: target_project.namespace,
+ namespace: target_project.namespace,
user: user,
project: target_project
)
diff --git a/spec/lib/gitlab/usage_data_counters/note_counter_spec.rb b/spec/lib/gitlab/usage_data_counters/note_counter_spec.rb
index 7e8f0172e06..687f8c2cd41 100644
--- a/spec/lib/gitlab/usage_data_counters/note_counter_spec.rb
+++ b/spec/lib/gitlab/usage_data_counters/note_counter_spec.rb
@@ -41,7 +41,7 @@ RSpec.describe Gitlab::UsageDataCounters::NoteCounter, :clean_gitlab_redis_share
let(:expected_totals) do
{ snippet_comment: 3,
merge_request_comment: 4,
- commit_comment: 5 }
+ commit_comment: 5 }
end
before do
diff --git a/spec/lib/gitlab/usage_data_spec.rb b/spec/lib/gitlab/usage_data_spec.rb
index 692b6483149..3b0cc0fb16b 100644
--- a/spec/lib/gitlab/usage_data_spec.rb
+++ b/spec/lib/gitlab/usage_data_spec.rb
@@ -583,10 +583,10 @@ RSpec.describe Gitlab::UsageData, :aggregate_failures do
it 'gathers object store usage correctly' do
expect(subject[:object_store]).to eq(
{ artifacts: { enabled: true, object_store: { enabled: true, direct_upload: true, background_upload: false, provider: "AWS" } },
- external_diffs: { enabled: false },
- lfs: { enabled: true, object_store: { enabled: false, direct_upload: true, background_upload: false, provider: "AWS" } },
- uploads: { enabled: nil, object_store: { enabled: false, direct_upload: true, background_upload: false, provider: "AWS" } },
- packages: { enabled: true, object_store: { enabled: false, direct_upload: false, background_upload: true, provider: "AWS" } } }
+ external_diffs: { enabled: false },
+ lfs: { enabled: true, object_store: { enabled: false, direct_upload: true, background_upload: false, provider: "AWS" } },
+ uploads: { enabled: nil, object_store: { enabled: false, direct_upload: true, background_upload: false, provider: "AWS" } },
+ packages: { enabled: true, object_store: { enabled: false, direct_upload: false, background_upload: true, provider: "AWS" } } }
)
end
diff --git a/spec/lib/gitlab/utils_spec.rb b/spec/lib/gitlab/utils_spec.rb
index ad1a65ffae8..61323f0646b 100644
--- a/spec/lib/gitlab/utils_spec.rb
+++ b/spec/lib/gitlab/utils_spec.rb
@@ -174,7 +174,7 @@ RSpec.describe Gitlab::Utils do
{
'TEST' => 'test',
'project_with_underscores' => 'project-with-underscores',
- 'namespace/project' => 'namespace-project',
+ 'namespace/project' => 'namespace-project',
'a' * 70 => 'a' * 63,
'test_trailing_' => 'test-trailing'
}.each do |original, expected|
diff --git a/spec/lib/gitlab/word_diff/parser_spec.rb b/spec/lib/gitlab/word_diff/parser_spec.rb
index 915c3f5a0f9..18109a8160b 100644
--- a/spec/lib/gitlab/word_diff/parser_spec.rb
+++ b/spec/lib/gitlab/word_diff/parser_spec.rb
@@ -42,18 +42,18 @@ RSpec.describe Gitlab::WordDiff::Parser do
{ index: 1, old_pos: 2, new_pos: 2, text: 'Unchanged line', type: nil, marker_ranges: [] },
{ index: 2, old_pos: 3, new_pos: 3, text: '', type: nil, marker_ranges: [] },
{ index: 3, old_pos: 4, new_pos: 4, text: 'Old changeNew addition unchanged content', type: nil,
- marker_ranges: [
- Gitlab::MarkerRange.new(0, 9, mode: :deletion),
- Gitlab::MarkerRange.new(10, 21, mode: :addition)
- ] },
+ marker_ranges: [
+ Gitlab::MarkerRange.new(0, 9, mode: :deletion),
+ Gitlab::MarkerRange.new(10, 21, mode: :addition)
+ ] },
{ index: 4, old_pos: 50, new_pos: 50, text: '@@ -50,14 +50,13 @@', type: 'match', marker_ranges: [] },
{ index: 5, old_pos: 50, new_pos: 50, text: 'First change same same same_removed_added_end of the line', type: nil,
- marker_ranges: [
- Gitlab::MarkerRange.new(0, 11, mode: :addition),
- Gitlab::MarkerRange.new(28, 35, mode: :deletion),
- Gitlab::MarkerRange.new(36, 41, mode: :addition)
- ] },
+ marker_ranges: [
+ Gitlab::MarkerRange.new(0, 11, mode: :addition),
+ Gitlab::MarkerRange.new(28, 35, mode: :deletion),
+ Gitlab::MarkerRange.new(36, 41, mode: :addition)
+ ] },
{ index: 6, old_pos: 51, new_pos: 51, text: '', type: nil, marker_ranges: [] }
]
diff --git a/spec/lib/marginalia_spec.rb b/spec/lib/marginalia_spec.rb
index 59add4e8347..5f405e71d79 100644
--- a/spec/lib/marginalia_spec.rb
+++ b/spec/lib/marginalia_spec.rb
@@ -45,8 +45,8 @@ RSpec.describe 'Marginalia spec' do
let(:component_map) do
{
- "application" => "test",
- "endpoint_id" => "MarginaliaTestController#first_user",
+ "application" => "test",
+ "endpoint_id" => "MarginaliaTestController#first_user",
"correlation_id" => correlation_id,
"db_config_name" => "main"
}
@@ -62,8 +62,8 @@ RSpec.describe 'Marginalia spec' do
let(:recorded) { ActiveRecord::QueryRecorder.new { make_request(correlation_id, :first_ci_pipeline) } }
let(:component_map) do
{
- "application" => "test",
- "endpoint_id" => "MarginaliaTestController#first_ci_pipeline",
+ "application" => "test",
+ "endpoint_id" => "MarginaliaTestController#first_ci_pipeline",
"correlation_id" => correlation_id,
"db_config_name" => 'ci'
}
@@ -104,10 +104,10 @@ RSpec.describe 'Marginalia spec' do
let(:component_map) do
{
- "application" => "sidekiq",
- "endpoint_id" => "MarginaliaTestJob",
+ "application" => "sidekiq",
+ "endpoint_id" => "MarginaliaTestJob",
"correlation_id" => sidekiq_job['correlation_id'],
- "jid" => sidekiq_job['jid'],
+ "jid" => sidekiq_job['jid'],
"db_config_name" => "main"
}
end
@@ -129,9 +129,9 @@ RSpec.describe 'Marginalia spec' do
let(:component_map) do
{
- "application" => "sidekiq",
- "endpoint_id" => "ActionMailer::MailDeliveryJob",
- "jid" => delivery_job.job_id,
+ "application" => "sidekiq",
+ "endpoint_id" => "ActionMailer::MailDeliveryJob",
+ "jid" => delivery_job.job_id,
"db_config_name" => "main"
}
end
diff --git a/spec/lib/security/ci_configuration/sast_build_action_spec.rb b/spec/lib/security/ci_configuration/sast_build_action_spec.rb
index 611a886d252..381ea60e7f5 100644
--- a/spec/lib/security/ci_configuration/sast_build_action_spec.rb
+++ b/spec/lib/security/ci_configuration/sast_build_action_spec.rb
@@ -33,12 +33,12 @@ RSpec.describe Security::CiConfiguration::SastBuildAction do
params.merge( { analyzers:
[
{
- name: "bandit",
- enabled: false
+ name: "bandit",
+ enabled: false
},
{
- name: "brakeman",
- enabled: true,
+ name: "brakeman",
+ enabled: true,
variables: [
{ field: "SAST_BRAKEMAN_LEVEL",
default_value: "1",
@@ -46,8 +46,8 @@ RSpec.describe Security::CiConfiguration::SastBuildAction do
]
},
{
- name: "flawfinder",
- enabled: true,
+ name: "flawfinder",
+ enabled: true,
variables: [
{ field: "SAST_FLAWFINDER_LEVEL",
default_value: "1",
@@ -62,12 +62,12 @@ RSpec.describe Security::CiConfiguration::SastBuildAction do
params.merge( { analyzers:
[
{
- name: "flawfinder",
- enabled: true
+ name: "flawfinder",
+ enabled: true
},
{
- name: "brakeman",
- enabled: true
+ name: "brakeman",
+ enabled: true
}
] }
)
@@ -219,49 +219,49 @@ RSpec.describe Security::CiConfiguration::SastBuildAction do
def existing_gitlab_ci_and_template_array_without_sast
{ "stages" => %w(test security),
- "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
- "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
- "include" => [{ "template" => "existing.yml" }] }
+ "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
+ "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
+ "include" => [{ "template" => "existing.yml" }] }
end
def existing_gitlab_ci_and_single_template_with_sast_and_default_stage
{ "stages" => %w(test),
- "variables" => { "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
- "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "test" },
- "include" => { "template" => "Security/SAST.gitlab-ci.yml" } }
+ "variables" => { "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
+ "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "test" },
+ "include" => { "template" => "Security/SAST.gitlab-ci.yml" } }
end
def existing_gitlab_ci_and_single_template_without_sast
{ "stages" => %w(test security),
- "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
- "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
- "include" => { "template" => "existing.yml" } }
+ "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
+ "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
+ "include" => { "template" => "existing.yml" } }
end
def existing_gitlab_ci_with_no_variables
{ "stages" => %w(test security),
- "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
- "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
+ "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
+ "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
end
def existing_gitlab_ci_with_no_sast_section
{ "stages" => %w(test security),
- "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
- "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
+ "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
+ "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
end
def existing_gitlab_ci_with_no_sast_variables
{ "stages" => %w(test security),
- "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
- "sast" => { "stage" => "security" },
- "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
+ "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "localhost:5000/analyzers" },
+ "sast" => { "stage" => "security" },
+ "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
end
def existing_gitlab_ci
{ "stages" => %w(test security),
- "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "bad_prefix" },
- "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
- "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
+ "variables" => { "RANDOM" => "make sure this persists", "SECURE_ANALYZERS_PREFIX" => "bad_prefix" },
+ "sast" => { "variables" => { "SEARCH_MAX_DEPTH" => 1 }, "stage" => "security" },
+ "include" => [{ "template" => "Security/SAST.gitlab-ci.yml" }] }
end
end
diff --git a/spec/mailers/emails/pipelines_spec.rb b/spec/mailers/emails/pipelines_spec.rb
index 3a2eb105964..1ac989cc46b 100644
--- a/spec/mailers/emails/pipelines_spec.rb
+++ b/spec/mailers/emails/pipelines_spec.rb
@@ -26,7 +26,7 @@ RSpec.describe Emails::Pipelines do
let!(:merge_request) do
create(:merge_request, source_branch: 'master', target_branch: 'feature',
- source_project: project, target_project: project)
+ source_project: project, target_project: project)
end
it 'has correct information that there is no merge request link' do
@@ -56,7 +56,7 @@ RSpec.describe Emails::Pipelines do
context 'when branch pipeline is set to a merge request as a head pipeline' do
let(:pipeline) do
create(:ci_pipeline, project: project, ref: ref, sha: sha,
- merge_requests_as_head_pipeline: [merge_request])
+ merge_requests_as_head_pipeline: [merge_request])
end
let(:merge_request) do
diff --git a/spec/migrations/20210804150320_create_base_work_item_types_spec.rb b/spec/migrations/20210804150320_create_base_work_item_types_spec.rb
index 6df8e1b2ebf..ae510826fe1 100644
--- a/spec/migrations/20210804150320_create_base_work_item_types_spec.rb
+++ b/spec/migrations/20210804150320_create_base_work_item_types_spec.rb
@@ -10,9 +10,9 @@ RSpec.describe CreateBaseWorkItemTypes, :migration do
let(:base_types) do
{
- issue: 0,
- incident: 1,
- test_case: 2,
+ issue: 0,
+ incident: 1,
+ test_case: 2,
requirement: 3
}
end
diff --git a/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb b/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb
index 1957a973ee1..552602983d9 100644
--- a/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb
+++ b/spec/migrations/20210831203408_upsert_base_work_item_types_spec.rb
@@ -10,9 +10,9 @@ RSpec.describe UpsertBaseWorkItemTypes, :migration do
let(:base_types) do
{
- issue: 0,
- incident: 1,
- test_case: 2,
+ issue: 0,
+ incident: 1,
+ test_case: 2,
requirement: 3
}
end
diff --git a/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb b/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb
index 6a82ed016af..ef6dd94d9e3 100644
--- a/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb
+++ b/spec/migrations/20211117084814_migrate_remaining_u2f_registrations_spec.rb
@@ -33,11 +33,11 @@ RSpec.describe MigrateRemainingU2fRegistrations, :migration do
device = U2F::FakeU2F.new(FFaker::BaconIpsum.characters(5), { key_handle: SecureRandom.random_bytes(255) })
public_key ||= Base64.strict_encode64(device.origin_public_key_raw)
u2f_registrations.create!({ id: id,
- certificate: Base64.strict_encode64(device.cert_raw),
- key_handle: U2F.urlsafe_encode64(device.key_handle_raw),
- public_key: public_key,
- counter: 5,
- name: name,
- user_id: user.id })
+ certificate: Base64.strict_encode64(device.cert_raw),
+ key_handle: U2F.urlsafe_encode64(device.key_handle_raw),
+ public_key: public_key,
+ counter: 5,
+ name: name,
+ user_id: user.id })
end
end
diff --git a/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb b/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb
index b80e4703f07..34a6e2fdd12 100644
--- a/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb
+++ b/spec/migrations/20211126204445_add_task_to_work_item_types_spec.rb
@@ -10,11 +10,11 @@ RSpec.describe AddTaskToWorkItemTypes, :migration do
let(:base_types) do
{
- issue: 0,
- incident: 1,
- test_case: 2,
+ issue: 0,
+ incident: 1,
+ test_case: 2,
requirement: 3,
- task: 4
+ task: 4
}
end
diff --git a/spec/models/ci/pipeline_spec.rb b/spec/models/ci/pipeline_spec.rb
index e4c0e81cc1b..6fbff95f504 100644
--- a/spec/models/ci/pipeline_spec.rb
+++ b/spec/models/ci/pipeline_spec.rb
@@ -1375,32 +1375,11 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep do
let(:pipeline) { build(:ci_empty_pipeline, :created) }
before do
- create(:ci_stage, project: project,
- pipeline: pipeline,
- position: 4,
- name: 'deploy')
-
- create(:ci_build, project: project,
- pipeline: pipeline,
- stage: 'test',
- stage_idx: 3,
- name: 'test')
-
- create(:ci_build, project: project,
- pipeline: pipeline,
- stage: 'build',
- stage_idx: 2,
- name: 'build')
-
- create(:ci_stage, project: project,
- pipeline: pipeline,
- position: 1,
- name: 'sanity')
-
- create(:ci_stage, project: project,
- pipeline: pipeline,
- position: 5,
- name: 'cleanup')
+ create(:ci_stage, project: project, pipeline: pipeline, position: 4, name: 'deploy')
+ create(:ci_build, project: project, pipeline: pipeline, stage: 'test', stage_idx: 3, name: 'test')
+ create(:ci_build, project: project, pipeline: pipeline, stage: 'build', stage_idx: 2, name: 'build')
+ create(:ci_stage, project: project, pipeline: pipeline, position: 1, name: 'sanity')
+ create(:ci_stage, project: project, pipeline: pipeline, position: 5, name: 'cleanup')
end
subject { pipeline.stages }
@@ -1649,9 +1628,8 @@ RSpec.describe Ci::Pipeline, :mailer, factory_default: :keep do
context 'when auto merge is enabled' do
let_it_be_with_reload(:merge_request) { create(:merge_request, :merge_when_pipeline_succeeds) }
let_it_be_with_reload(:pipeline) do
- create(:ci_pipeline, :running, project: merge_request.source_project,
- ref: merge_request.source_branch,
- sha: merge_request.diff_head_sha)
+ create(:ci_pipeline, :running,
+ project: merge_request.source_project, ref: merge_request.source_branch, sha: merge_request.diff_head_sha)
end
before_all do
diff --git a/spec/models/commit_status_spec.rb b/spec/models/commit_status_spec.rb
index 78d4d9de84e..e0e17ee5e89 100644
--- a/spec/models/commit_status_spec.rb
+++ b/spec/models/commit_status_spec.rb
@@ -836,17 +836,11 @@ RSpec.describe CommitStatus do
context 'when commit status does not have stage but it exists' do
let!(:stage) do
- create(:ci_stage, project: project,
- pipeline: pipeline,
- name: 'test')
+ create(:ci_stage, project: project, pipeline: pipeline, name: 'test')
end
let(:commit_status) do
- create(:commit_status, project: project,
- pipeline: pipeline,
- name: 'rspec',
- stage: 'test',
- status: :success)
+ create(:commit_status, project: project, pipeline: pipeline, name: 'rspec', stage: 'test', status: :success)
end
it 'uses existing stage', :sidekiq_might_not_need_inline do
diff --git a/spec/policies/ci/pipeline_schedule_policy_spec.rb b/spec/policies/ci/pipeline_schedule_policy_spec.rb
index f2c99e0de95..9aa50876b55 100644
--- a/spec/policies/ci/pipeline_schedule_policy_spec.rb
+++ b/spec/policies/ci/pipeline_schedule_policy_spec.rb
@@ -2,7 +2,7 @@
require 'spec_helper'
-RSpec.describe Ci::PipelineSchedulePolicy, :models do
+RSpec.describe Ci::PipelineSchedulePolicy, :models, :clean_gitlab_redis_cache do
let_it_be(:user) { create(:user) }
let_it_be(:project) { create(:project, :repository) }
let_it_be(:pipeline_schedule, reload: true) { create(:ci_pipeline_schedule, :nightly, project: project) }
diff --git a/spec/presenters/clusters/cluster_presenter_spec.rb b/spec/presenters/clusters/cluster_presenter_spec.rb
index 7349f444fac..755f1ea6078 100644
--- a/spec/presenters/clusters/cluster_presenter_spec.rb
+++ b/spec/presenters/clusters/cluster_presenter_spec.rb
@@ -119,18 +119,20 @@ RSpec.describe Clusters::ClusterPresenter do
subject { cluster_presenter.health_data(clusterable_presenter) }
it do
- is_expected.to include('clusters-path': clusterable_presenter.index_path,
- 'dashboard-endpoint': clusterable_presenter.metrics_dashboard_path(cluster),
- 'documentation-path': help_page_path('user/infrastructure/clusters/manage/clusters_health'),
- 'add-dashboard-documentation-path': help_page_path('operations/metrics/dashboards/index.md', anchor: 'add-a-new-dashboard-to-your-project'),
- 'empty-getting-started-svg-path': match_asset_path('/assets/illustrations/monitoring/getting_started.svg'),
- 'empty-loading-svg-path': match_asset_path('/assets/illustrations/monitoring/loading.svg'),
- 'empty-no-data-svg-path': match_asset_path('/assets/illustrations/monitoring/no_data.svg'),
- 'empty-no-data-small-svg-path': match_asset_path('illustrations/chart-empty-state-small.svg'),
- 'empty-unable-to-connect-svg-path': match_asset_path('/assets/illustrations/monitoring/unable_to_connect.svg'),
- 'settings-path': '',
- 'project-path': '',
- 'tags-path': '')
+ is_expected.to include(
+ 'clusters-path': clusterable_presenter.index_path,
+ 'dashboard-endpoint': clusterable_presenter.metrics_dashboard_path(cluster),
+ 'documentation-path': help_page_path('user/infrastructure/clusters/manage/clusters_health'),
+ 'add-dashboard-documentation-path': help_page_path('operations/metrics/dashboards/index.md', anchor: 'add-a-new-dashboard-to-your-project'),
+ 'empty-getting-started-svg-path': match_asset_path('/assets/illustrations/monitoring/getting_started.svg'),
+ 'empty-loading-svg-path': match_asset_path('/assets/illustrations/monitoring/loading.svg'),
+ 'empty-no-data-svg-path': match_asset_path('/assets/illustrations/monitoring/no_data.svg'),
+ 'empty-no-data-small-svg-path': match_asset_path('illustrations/chart-empty-state-small.svg'),
+ 'empty-unable-to-connect-svg-path': match_asset_path('/assets/illustrations/monitoring/unable_to_connect.svg'),
+ 'settings-path': '',
+ 'project-path': '',
+ 'tags-path': ''
+ )
end
end