Commit 605a4208 authored by Sashi Kumar's avatar Sashi Kumar

Remove store_mentions! in Snippets::CreateService

parent 58b0ba62
......@@ -38,9 +38,7 @@ module Snippets
private
def save_and_commit
snippet_saved = @snippet.with_transaction_returning_status do
@snippet.save && @snippet.store_mentions!
end
snippet_saved = @snippet.save
if snippet_saved && Feature.enabled?(:version_snippets, current_user)
create_repository
......
---
title: Remove store_mentions! in Snippets::CreateService
merge_request: 29581
author: Sashi Kumar
type: other
......@@ -252,6 +252,39 @@ describe Snippets::CreateService do
end
end
shared_examples 'after_save callback to store_mentions' do
context 'when mentionable attributes change' do
let(:extra_opts) { { description: "Description with #{user.to_reference}" } }
it 'saves mentions' do
expect_next_instance_of(Snippet) do |instance|
expect(instance).to receive(:store_mentions!).and_call_original
end
expect(snippet.user_mentions.count).to eq 1
end
end
context 'when mentionable attributes do not change' do
it 'does not call store_mentions' do
expect_next_instance_of(Snippet) do |instance|
expect(instance).not_to receive(:store_mentions!)
end
expect(snippet.user_mentions.count).to eq 0
end
end
context 'when save fails' do
it 'does not call store_mentions' do
base_opts.delete(:title)
expect_next_instance_of(Snippet) do |instance|
expect(instance).not_to receive(:store_mentions!)
end
expect(snippet.valid?).to be false
end
end
end
context 'when ProjectSnippet' do
let_it_be(:project) { create(:project) }
......@@ -265,6 +298,7 @@ describe Snippets::CreateService do
it_behaves_like 'snippet create data is tracked'
it_behaves_like 'an error service response when save fails'
it_behaves_like 'creates repository and files'
it_behaves_like 'after_save callback to store_mentions'
end
context 'when PersonalSnippet' do
......@@ -276,6 +310,9 @@ describe Snippets::CreateService do
it_behaves_like 'snippet create data is tracked'
it_behaves_like 'an error service response when save fails'
it_behaves_like 'creates repository and files'
pending('See https://gitlab.com/gitlab-org/gitlab/issues/30742') do
it_behaves_like 'after_save callback to store_mentions'
end
end
end
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