Commit efd3ac56 authored by Toon Claes's avatar Toon Claes

Stub callback in factory instead of skipping it

Instead of skipping a callback, stub it on the instance, this avoids
messing up the factory for any future use.

See https://gitlab.com/gitlab-org/gitlab/-/issues/247865
parent baec1a87
......@@ -3,7 +3,9 @@
require 'spec_helper'
RSpec.describe Geo::MergeRequestDiffRegistry, :geo, type: :model do
let_it_be(:registry) { create(:geo_merge_request_diff_registry) }
let_it_be(:merge_request) { create(:merge_request) }
let_it_be(:merge_request_diff) { create(:merge_request_diff, merge_request: merge_request) }
let_it_be(:registry) { create(:geo_merge_request_diff_registry, merge_request_diff: merge_request_diff) }
specify 'factory is valid' do
expect(registry).to be_valid
......
......@@ -2,7 +2,13 @@
FactoryBot.define do
factory :merge_request_diff do
association :merge_request, :without_merge_request_diff
merge_request do
build(:merge_request) do |merge_request|
# MergeRequest should not create a MergeRequestDiff in the callback
allow(merge_request).to receive(:ensure_merge_request_diff)
end
end
state { :collected }
commits_count { 1 }
......
......@@ -92,16 +92,6 @@ 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
......
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