summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-09-09 18:08:48 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-09-09 18:08:48 +0000
commitc172bb9967f280e05bd904188d60a959dff10f00 (patch)
treeeea80d33b034fe856352b94f49a6f2e677ed780c /spec
parent825e4190a30a745adb37ab822eb8f9d845b462e7 (diff)
downloadgitlab-ce-c172bb9967f280e05bd904188d60a959dff10f00.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec')
-rw-r--r--spec/bin/feature_flag_spec.rb20
-rw-r--r--spec/factories/merge_request_diffs.rb10
-rw-r--r--spec/factories/merge_requests.rb10
-rw-r--r--spec/lib/gitlab/import_export/all_models.yml3
4 files changed, 30 insertions, 13 deletions
diff --git a/spec/bin/feature_flag_spec.rb b/spec/bin/feature_flag_spec.rb
index f85b8f22210..92d8fbddd44 100644
--- a/spec/bin/feature_flag_spec.rb
+++ b/spec/bin/feature_flag_spec.rb
@@ -1,6 +1,7 @@
# frozen_string_literal: true
-require 'spec_helper'
+require 'fast_spec_helper'
+require 'rspec-parameterized'
load File.expand_path('../../bin/feature-flag', __dir__)
@@ -11,25 +12,20 @@ RSpec.describe 'bin/feature-flag' do
let(:argv) { %w[feature-flag-name -t development -g group::memory -i https://url -m http://url] }
let(:options) { FeatureFlagOptionParser.parse(argv) }
let(:creator) { described_class.new(options) }
- let(:existing_flag) { File.join('config', 'feature_flags', 'development', 'existing-feature-flag.yml') }
+ let(:existing_flags) do
+ { 'existing-feature-flag' => File.join('config', 'feature_flags', 'development', 'existing-feature-flag.yml') }
+ end
before do
- # create a dummy feature flag
- FileUtils.mkdir_p(File.dirname(existing_flag))
- File.write(existing_flag, '{}')
+ allow(creator).to receive(:all_feature_flag_names) { existing_flags }
+ allow(creator).to receive(:branch_name) { 'feature-branch' }
+ allow(creator).to receive(:editor) { nil }
# ignore writes
allow(File).to receive(:write).and_return(true)
# ignore stdin
allow($stdin).to receive(:gets).and_raise('EOF')
-
- # ignore Git commands
- allow(creator).to receive(:branch_name) { 'feature-branch' }
- end
-
- after do
- FileUtils.rm_f(existing_flag)
end
subject { creator.execute }
diff --git a/spec/factories/merge_request_diffs.rb b/spec/factories/merge_request_diffs.rb
index 0c4c3244af5..8110ffd0877 100644
--- a/spec/factories/merge_request_diffs.rb
+++ b/spec/factories/merge_request_diffs.rb
@@ -2,12 +2,20 @@
FactoryBot.define do
factory :merge_request_diff do
- association :merge_request
+ association :merge_request, :without_merge_request_diff
state { :collected }
commits_count { 1 }
base_commit_sha { Digest::SHA1.hexdigest(SecureRandom.hex) }
head_commit_sha { Digest::SHA1.hexdigest(SecureRandom.hex) }
start_commit_sha { Digest::SHA1.hexdigest(SecureRandom.hex) }
+
+ trait :external do
+ external_diff { fixture_file_upload("spec/fixtures/doc_sample.txt", "plain/txt") }
+ stored_externally { true }
+ importing { true } # this avoids setting the state to 'empty'
+ end
+
+ factory :external_merge_request_diff, traits: [:external]
end
end
diff --git a/spec/factories/merge_requests.rb b/spec/factories/merge_requests.rb
index 6836d5d71f0..9fd6ebe783c 100644
--- a/spec/factories/merge_requests.rb
+++ b/spec/factories/merge_requests.rb
@@ -92,6 +92,16 @@ FactoryBot.define do
target_branch { "feature_two" }
end
+ trait(:without_merge_request_diff) do
+ after(:build) do |_|
+ MergeRequest.skip_callback(:create, :after, :ensure_merge_request_diff)
+ end
+
+ after(:create) do |_|
+ MergeRequest.set_callback(:create, :after, :ensure_merge_request_diff)
+ end
+ end
+
trait :locked do
state_id { MergeRequest.available_states[:locked] }
end
diff --git a/spec/lib/gitlab/import_export/all_models.yml b/spec/lib/gitlab/import_export/all_models.yml
index 3ad3f610128..d6cfadd39bf 100644
--- a/spec/lib/gitlab/import_export/all_models.yml
+++ b/spec/lib/gitlab/import_export/all_models.yml
@@ -179,9 +179,12 @@ external_pull_requests:
merge_request_diff:
- merge_request
- merge_request_diff_commits
+- merge_request_diff_detail
- merge_request_diff_files
merge_request_diff_commits:
- merge_request_diff
+merge_request_diff_detail:
+- merge_request_diff
merge_request_diff_files:
- merge_request_diff
merge_request_context_commits: