Commit 0f1260a9 authored by GitLab Bot's avatar GitLab Bot

Automatic merge of gitlab-org/gitlab master

parents 0aa33c28 ab1b772f
...@@ -283,8 +283,9 @@ module ObjectStorage ...@@ -283,8 +283,9 @@ module ObjectStorage
if file_storage? if file_storage?
IO.copy_stream(path, file) IO.copy_stream(path, file)
else else
streamer = lambda { |chunk, _, _| file.write(chunk) } Faraday.get(url) do |req|
Excon.get(url, response_block: streamer) req.options.on_data = proc { |chunk, _| file.write(chunk) }
end
end end
file.seek(0, IO::SEEK_SET) file.seek(0, IO::SEEK_SET)
......
...@@ -69,8 +69,8 @@ module Gitlab ...@@ -69,8 +69,8 @@ module Gitlab
author_id: author_id, author_id: author_id,
note: note, note: note,
system: false, system: false,
created_at: review.submitted_at, created_at: submitted_at,
updated_at: review.submitted_at updated_at: submitted_at
}.merge(extra) }.merge(extra)
end end
...@@ -80,8 +80,8 @@ module Gitlab ...@@ -80,8 +80,8 @@ module Gitlab
approval_attribues = { approval_attribues = {
merge_request_id: merge_request.id, merge_request_id: merge_request.id,
user_id: user_id, user_id: user_id,
created_at: review.submitted_at, created_at: submitted_at,
updated_at: review.submitted_at updated_at: submitted_at
} }
result = ::Approval.insert( result = ::Approval.insert(
...@@ -105,6 +105,10 @@ module Gitlab ...@@ -105,6 +105,10 @@ module Gitlab
Note.create!(attributes) Note.create!(attributes)
end end
def submitted_at
@submitted_at ||= (review.submitted_at || merge_request.updated_at)
end
end end
end end
end end
......
...@@ -29,7 +29,7 @@ module Gitlab ...@@ -29,7 +29,7 @@ module Gitlab
hash = Representation.symbolize_hash(raw_hash) hash = Representation.symbolize_hash(raw_hash)
hash[:author] &&= Representation::User.from_json_hash(hash[:author]) hash[:author] &&= Representation::User.from_json_hash(hash[:author])
hash[:submitted_at] = Time.parse(hash[:submitted_at]).in_time_zone hash[:submitted_at] = Time.parse(hash[:submitted_at]).in_time_zone if hash[:submitted_at].present?
new(hash) new(hash)
end end
......
...@@ -244,8 +244,7 @@ RSpec.describe 'Project issue boards', :js do ...@@ -244,8 +244,7 @@ RSpec.describe 'Project issue boards', :js do
expect(page).to have_selector(selector, text: development.title, count: 1) expect(page).to have_selector(selector, text: development.title, count: 1)
end end
# TODO https://gitlab.com/gitlab-org/gitlab/-/issues/323551 it 'issue moves between lists and does not show the "Development" label since the card is in the "Development" list label' do
xit 'issue moves between lists and does not show the "Development" label since the card is in the "Development" list label' do
drag(list_from_index: 1, from_index: 1, list_to_index: 2) drag(list_from_index: 1, from_index: 1, list_to_index: 2)
wait_for_board_cards(2, 7) wait_for_board_cards(2, 7)
......
...@@ -2,22 +2,8 @@ ...@@ -2,22 +2,8 @@
require 'spec_helper' require 'spec_helper'
RSpec.describe 'Mailer retries' do RSpec.describe 'Mailer retries', :sidekiq_mailers do
# We need to ensure that this runs through Sidekiq to take it 'sets retries for mailers to 3' do
# advantage of the middleware. There is a Rails bug that means we
# have to do some extra steps to make this happen:
# https://github.com/rails/rails/issues/37270#issuecomment-553927324
around do |example|
descendants = ActiveJob::Base.descendants + [ActiveJob::Base]
descendants.each(&:disable_test_adapter)
ActiveJob::Base.queue_adapter = :sidekiq
example.run
descendants.each { |a| a.queue_adapter = :test }
end
it 'sets retries for mailers to 3', quarantine: 'https://gitlab.com/gitlab-org/gitlab/-/issues/332645' do
DeviseMailer.user_admin_approval(create(:user)).deliver_later DeviseMailer.user_admin_approval(create(:user)).deliver_later
expect(Sidekiq::Queues['mailers'].first).to include('retry' => 3) expect(Sidekiq::Queues['mailers'].first).to include('retry' => 3)
......
...@@ -167,6 +167,19 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestReviewImporter, :clean ...@@ -167,6 +167,19 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestReviewImporter, :clean
end end
end end
context 'when the submitted_at is not provided' do
let(:review) { create_review(type: 'APPROVED', note: '', submitted_at: nil) }
it 'creates a note for the review without the author information' do
expect { subject.execute }.to change(Note, :count).by(1)
last_note = merge_request.notes.last
expect(last_note.created_at)
.to be_within(1.second).of(merge_request.updated_at)
end
end
context 'when the review has a note text' do context 'when the review has a note text' do
context 'when the review is "APPROVED"' do context 'when the review is "APPROVED"' do
let(:review) { create_review(type: 'APPROVED') } let(:review) { create_review(type: 'APPROVED') }
...@@ -215,13 +228,15 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestReviewImporter, :clean ...@@ -215,13 +228,15 @@ RSpec.describe Gitlab::GithubImport::Importer::PullRequestReviewImporter, :clean
end end
end end
def create_review(type:, note: 'note', author: { id: 999, login: 'author' }) def create_review(type:, **extra)
Gitlab::GithubImport::Representation::PullRequestReview.from_json_hash( Gitlab::GithubImport::Representation::PullRequestReview.from_json_hash(
merge_request_id: merge_request.id, extra.reverse_merge(
review_type: type, author: { id: 999, login: 'author' },
note: note, merge_request_id: merge_request.id,
submitted_at: submitted_at.to_s, review_type: type,
author: author note: 'note',
submitted_at: submitted_at.to_s
)
) )
end end
end end
...@@ -68,5 +68,11 @@ RSpec.describe Gitlab::GithubImport::Representation::PullRequestReview do ...@@ -68,5 +68,11 @@ RSpec.describe Gitlab::GithubImport::Representation::PullRequestReview do
expect(review.author).to be_nil expect(review.author).to be_nil
end end
it 'does not fail when submitted_at is blank' do
review = described_class.from_json_hash(hash.except('submitted_at'))
expect(review.submitted_at).to be_nil
end
end end
end end
...@@ -89,21 +89,7 @@ RSpec.describe 'Marginalia spec' do ...@@ -89,21 +89,7 @@ RSpec.describe 'Marginalia spec' do
end end
end end
describe 'for ActionMailer delivery jobs' do describe 'for ActionMailer delivery jobs', :sidekiq_mailers do
# We need to ensure that this runs through Sidekiq to take
# advantage of the middleware. There is a Rails bug that means we
# have to do some extra steps to make this happen:
# https://github.com/rails/rails/issues/37270#issuecomment-553927324
around do |example|
descendants = ActiveJob::Base.descendants + [ActiveJob::Base]
descendants.each(&:disable_test_adapter)
ActiveJob::Base.queue_adapter = :sidekiq
example.run
descendants.each { |a| a.queue_adapter = :test }
end
let(:delivery_job) { MarginaliaTestMailer.first_user.deliver_later } let(:delivery_job) { MarginaliaTestMailer.first_user.deliver_later }
let(:recorded) do let(:recorded) do
......
...@@ -929,6 +929,10 @@ RSpec.describe NotificationService, :mailer do ...@@ -929,6 +929,10 @@ RSpec.describe NotificationService, :mailer do
end end
context 'design management is disabled' do context 'design management is disabled' do
before do
enable_design_management(false)
end
it 'does not notify anyone' do it 'does not notify anyone' do
notification.new_note(note) notification.new_note(note)
......
...@@ -20,4 +20,25 @@ RSpec.configure do |config| ...@@ -20,4 +20,25 @@ RSpec.configure do |config|
config.around(:example, :sidekiq_inline) do |example| config.around(:example, :sidekiq_inline) do |example|
gitlab_sidekiq_inline { example.run } gitlab_sidekiq_inline { example.run }
end end
# Some specs need to run mailers through Sidekiq explicitly, rather
# than the ActiveJob test adapter. There is a Rails bug that means we
# have to do some extra steps to make this happen:
# https://github.com/rails/rails/issues/37270
#
# In particular, we can't use an `around` hook because then the 'before' part
# of that will run before the `before_setup` hook in ActiveJob::TestHelper,
# which doesn't do what we want.
#
config.before(:example, :sidekiq_mailers) do
queue_adapter_changed_jobs.each { |k| k.queue_adapter = :sidekiq }
queue_adapter_changed_jobs.each(&:disable_test_adapter)
end
config.after(:example, :sidekiq_mailers) do
queue_adapter_changed_jobs.each do |klass|
klass.queue_adapter = :test
klass.enable_test_adapter(ActiveJob::QueueAdapters::TestAdapter.new)
end
end
end end
...@@ -222,7 +222,11 @@ RSpec.describe ObjectStorage do ...@@ -222,7 +222,11 @@ RSpec.describe ObjectStorage do
before do before do
stub_artifacts_object_storage stub_artifacts_object_storage
stub_request(:get, %r{s3.amazonaws.com/#{uploader.path}}).to_return(status: 200, body: '')
# We need to check the Host header not including the port because AWS does not accept
stub_request(:get, %r{s3.amazonaws.com/#{uploader.path}})
.with { |request| !request.headers['Host'].to_s.include?(':443') }
.to_return(status: 200, body: '')
end end
it "returns the file" do it "returns the file" do
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment