summaryrefslogtreecommitdiff
path: root/spec/lib
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2022-07-28 00:09:28 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2022-07-28 00:09:28 +0000
commit2d096b1a9b759a3e4923df4dc77dea9198ca3b09 (patch)
tree0cf18a37e85d3a57d4f2d20129e9bbc116b7701e /spec/lib
parent9da482ecb8d25c8b6387f3262cfe983976333eec (diff)
downloadgitlab-ce-2d096b1a9b759a3e4923df4dc77dea9198ca3b09.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/lib')
-rw-r--r--spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb54
-rw-r--r--spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb52
-rw-r--r--spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb8
-rw-r--r--spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb8
-rw-r--r--spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb8
-rw-r--r--spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb18
-rw-r--r--spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb9
-rw-r--r--spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb32
8 files changed, 96 insertions, 93 deletions
diff --git a/spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb b/spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb
new file mode 100644
index 00000000000..564aa3b8c01
--- /dev/null
+++ b/spec/lib/gitlab/background_migration/backfill_namespace_id_of_vulnerability_reads_spec.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::BackgroundMigration::BackfillNamespaceIdOfVulnerabilityReads, schema: 20220722145845 do
+ let(:namespaces) { table(:namespaces) }
+ let(:projects) { table(:projects) }
+ let(:users) { table(:users) }
+ let(:scanners) { table(:vulnerability_scanners) }
+ let(:vulnerabilities) { table(:vulnerabilities) }
+ let(:vulnerability_reads) { table(:vulnerability_reads) }
+
+ let(:namespace) { namespaces.create!(name: 'user', path: 'user') }
+ let(:project) { projects.create!(namespace_id: namespace.id, project_namespace_id: namespace.id) }
+ let(:user) { users.create!(username: 'john_doe', email: 'johndoe@gitlab.com', projects_limit: 10) }
+ let(:scanner) { scanners.create!(project_id: project.id, external_id: 'external_id', name: 'Test Scanner') }
+ let(:vulnerability) do
+ vulnerabilities.create!(
+ project_id: project.id,
+ author_id: user.id,
+ title: 'test',
+ severity: 1,
+ confidence: 1,
+ report_type: 1
+ )
+ end
+
+ let(:vulnerability_read) do
+ vulnerability_reads.create!(
+ project_id: project.id,
+ vulnerability_id: vulnerability.id,
+ scanner_id: scanner.id,
+ severity: 1,
+ report_type: 1,
+ state: 1,
+ uuid: SecureRandom.uuid
+ )
+ end
+
+ subject(:perform_migration) do
+ described_class.new(start_id: vulnerability_read.vulnerability_id,
+ end_id: vulnerability_read.vulnerability_id,
+ batch_table: :vulnerability_reads,
+ batch_column: :vulnerability_id,
+ sub_batch_size: 1,
+ pause_ms: 0,
+ connection: ActiveRecord::Base.connection)
+ .perform
+ end
+
+ it 'sets the namespace_id of existing record' do
+ expect { perform_migration }.to change { vulnerability_read.reload.namespace_id }.from(nil).to(namespace.id)
+ end
+end
diff --git a/spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb b/spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb
deleted file mode 100644
index 2b082ca7379..00000000000
--- a/spec/lib/gitlab/background_migration/copy_ci_builds_columns_to_security_scans_spec.rb
+++ /dev/null
@@ -1,52 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Gitlab::BackgroundMigration::CopyCiBuildsColumnsToSecurityScans,
- :suppress_gitlab_schemas_validate_connection, schema: 20210728174349 do
- let(:migration) { described_class.new }
-
- let_it_be(:namespaces) { table(:namespaces) }
- let_it_be(:projects) { table(:projects) }
- let_it_be(:ci_pipelines) { table(:ci_pipelines) }
- let_it_be(:ci_builds) { table(:ci_builds) }
- let_it_be(:security_scans) { table(:security_scans) }
-
- let!(:namespace) { namespaces.create!(name: 'namespace', path: 'namespace') }
- let!(:project1) { projects.create!(namespace_id: namespace.id) }
- let!(:project2) { projects.create!(namespace_id: namespace.id) }
- let!(:pipeline1) { ci_pipelines.create!(status: "success")}
- let!(:pipeline2) { ci_pipelines.create!(status: "success")}
-
- let!(:build1) { ci_builds.create!(commit_id: pipeline1.id, type: 'Ci::Build', project_id: project1.id) }
- let!(:build2) { ci_builds.create!(commit_id: pipeline2.id, type: 'Ci::Build', project_id: project2.id) }
- let!(:build3) { ci_builds.create!(commit_id: pipeline1.id, type: 'Ci::Build', project_id: project1.id) }
-
- let!(:scan1) { security_scans.create!(build_id: build1.id, scan_type: 1) }
- let!(:scan2) { security_scans.create!(build_id: build2.id, scan_type: 1) }
- let!(:scan3) { security_scans.create!(build_id: build3.id, scan_type: 1) }
-
- subject { migration.perform(scan1.id, scan2.id) }
-
- before do
- stub_const("#{described_class}::UPDATE_BATCH_SIZE", 2)
- end
-
- it 'copies `project_id`, `commit_id` from `ci_builds` to `security_scans`', :aggregate_failures do
- expect(migration).to receive(:mark_job_as_succeeded).with(scan1.id, scan2.id)
-
- subject
-
- scan1.reload
- expect(scan1.project_id).to eq(project1.id)
- expect(scan1.pipeline_id).to eq(pipeline1.id)
-
- scan2.reload
- expect(scan2.project_id).to eq(project2.id)
- expect(scan2.pipeline_id).to eq(pipeline2.id)
-
- scan3.reload
- expect(scan3.project_id).to be_nil
- expect(scan3.pipeline_id).to be_nil
- end
-end
diff --git a/spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb b/spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb
index 81bce989833..31c7437cfe0 100644
--- a/spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb
+++ b/spec/lib/gitlab/ci/build/rules/rule/clause/if_spec.rb
@@ -51,14 +51,6 @@ RSpec.describe Gitlab::Ci::Build::Rules::Rule::Clause::If do
end
it { is_expected.to eq(true) }
-
- context 'when the FF ci_fix_rules_if_comparison_with_regexp_variable is disabled' do
- before do
- stub_feature_flags(ci_fix_rules_if_comparison_with_regexp_variable: false)
- end
-
- it { is_expected.to eq(false) }
- end
end
context 'when comparison is false' do
diff --git a/spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb
index 83742699d3d..47f172922a5 100644
--- a/spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/expression/lexeme/matches_spec.rb
@@ -160,14 +160,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Expression::Lexeme::Matches do
let(:left_value) { 'abcde' }
it { is_expected.to eq(true) }
-
- context 'when the FF ci_fix_rules_if_comparison_with_regexp_variable is disabled' do
- before do
- stub_feature_flags(ci_fix_rules_if_comparison_with_regexp_variable: false)
- end
-
- it { is_expected.to eq(false) }
- end
end
context 'when not matching' do
diff --git a/spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb
index aad33106647..9e7ea3e4ea4 100644
--- a/spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/expression/lexeme/not_matches_spec.rb
@@ -160,14 +160,6 @@ RSpec.describe Gitlab::Ci::Pipeline::Expression::Lexeme::NotMatches do
let(:left_value) { 'abcde' }
it { is_expected.to eq(false) }
-
- context 'when the FF ci_fix_rules_if_comparison_with_regexp_variable is disabled' do
- before do
- stub_feature_flags(ci_fix_rules_if_comparison_with_regexp_variable: false)
- end
-
- it { is_expected.to eq(true) }
- end
end
context 'when not matching' do
diff --git a/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb b/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb
index bbd11a00149..acaec07f95b 100644
--- a/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb
+++ b/spec/lib/gitlab/ci/pipeline/expression/statement_spec.rb
@@ -179,24 +179,16 @@ RSpec.describe Gitlab::Ci::Pipeline::Expression::Statement do
.to_hash
end
- where(:expression, :ff, :result) do
- '$teststring =~ "abcde"' | true | true
- '$teststring =~ "abcde"' | false | true
- '$teststring =~ $teststring' | true | true
- '$teststring =~ $teststring' | false | true
- '$teststring =~ $pattern1' | true | true
- '$teststring =~ $pattern1' | false | false
- '$teststring =~ $pattern2' | true | false
- '$teststring =~ $pattern2' | false | false
+ where(:expression, :result) do
+ '$teststring =~ "abcde"' | true
+ '$teststring =~ $teststring' | true
+ '$teststring =~ $pattern1' | true
+ '$teststring =~ $pattern2' | false
end
with_them do
let(:text) { expression }
- before do
- stub_feature_flags(ci_fix_rules_if_comparison_with_regexp_variable: ff)
- end
-
it { is_expected.to eq(result) }
end
end
diff --git a/spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb b/spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb
index c28d18b4c77..fd2e564d1b1 100644
--- a/spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb
+++ b/spec/lib/gitlab/github_import/importer/events/cross_referenced_spec.rb
@@ -12,8 +12,9 @@ RSpec.describe Gitlab::GithubImport::Importer::Events::CrossReferenced, :clean_g
let(:client) { instance_double('Gitlab::GithubImport::Client') }
let(:user_finder) { Gitlab::GithubImport::UserFinder.new(project, client) }
- let(:issue) { create(:issue, project: project) }
- let(:referenced_in) { build_stubbed(:issue, project: project) }
+ let(:issue_iid) { 999 }
+ let(:issue) { create(:issue, project: project, iid: issue_iid) }
+ let(:referenced_in) { build_stubbed(:issue, project: project, iid: issue_iid + 1) }
let(:commit_id) { nil }
let(:issue_event) do
@@ -49,7 +50,7 @@ RSpec.describe Gitlab::GithubImport::Importer::Events::CrossReferenced, :clean_g
end
context 'when referenced in other issue' do
- let(:expected_note_body) { "mentioned in issue ##{issue.iid}" }
+ let(:expected_note_body) { "mentioned in issue ##{referenced_in.iid}" }
before do
other_issue_resource = sawyer_stub.new(iid: referenced_in.iid, issuable_type: 'Issue')
@@ -58,7 +59,7 @@ RSpec.describe Gitlab::GithubImport::Importer::Events::CrossReferenced, :clean_g
allow(user_finder).to receive(:find).with(user.id, user.username).and_return(user.id)
end
- it 'creates expected note', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/368827' do
+ it 'creates expected note' do
importer.execute(issue_event)
expect(issue.notes.count).to eq 1
diff --git a/spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb b/spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb
index 8e7bd7b84e6..f73155642d6 100644
--- a/spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb
+++ b/spec/lib/gitlab/usage/metrics/instrumentations/database_metric_spec.rb
@@ -160,6 +160,38 @@ RSpec.describe Gitlab::Usage::Metrics::Instrumentations::DatabaseMetric do
end
end
end
+
+ context 'with custom timestamp column' do
+ subject do
+ described_class.tap do |metric_class|
+ metric_class.relation { Issue }
+ metric_class.operation :count
+ metric_class.timestamp_column :last_edited_at
+ end.new(time_frame: '28d')
+ end
+
+ it 'calculates a correct result' do
+ create(:issue, last_edited_at: 5.days.ago)
+
+ expect(subject.value).to eq(1)
+ end
+ end
+
+ context 'with default timestamp column' do
+ subject do
+ described_class.tap do |metric_class|
+ metric_class.relation { Issue }
+ metric_class.operation :count
+ end.new(time_frame: '28d')
+ end
+
+ it 'calculates a correct result' do
+ create(:issue, last_edited_at: 5.days.ago)
+ create(:issue, created_at: 5.days.ago)
+
+ expect(subject.value).to eq(1)
+ end
+ end
end
context 'with unimplemented operation method used' do