Commit e5b8b9e6 authored by Peter Leitzen's avatar Peter Leitzen

Merge branch 'sk/213557-remove-store_mentions' into 'master'

Remove store_mentions! in Snippets::CreateService

See merge request gitlab-org/gitlab!29581
parents 2f772010 605a4208
...@@ -38,9 +38,7 @@ module Snippets ...@@ -38,9 +38,7 @@ module Snippets
private private
def save_and_commit def save_and_commit
snippet_saved = @snippet.with_transaction_returning_status do snippet_saved = @snippet.save
@snippet.save && @snippet.store_mentions!
end
if snippet_saved && Feature.enabled?(:version_snippets, current_user) if snippet_saved && Feature.enabled?(:version_snippets, current_user)
create_repository 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 ...@@ -252,6 +252,39 @@ describe Snippets::CreateService do
end end
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 context 'when ProjectSnippet' do
let_it_be(:project) { create(:project) } let_it_be(:project) { create(:project) }
...@@ -265,6 +298,7 @@ describe Snippets::CreateService do ...@@ -265,6 +298,7 @@ describe Snippets::CreateService do
it_behaves_like 'snippet create data is tracked' it_behaves_like 'snippet create data is tracked'
it_behaves_like 'an error service response when save fails' it_behaves_like 'an error service response when save fails'
it_behaves_like 'creates repository and files' it_behaves_like 'creates repository and files'
it_behaves_like 'after_save callback to store_mentions'
end end
context 'when PersonalSnippet' do context 'when PersonalSnippet' do
...@@ -276,6 +310,9 @@ describe Snippets::CreateService do ...@@ -276,6 +310,9 @@ describe Snippets::CreateService do
it_behaves_like 'snippet create data is tracked' it_behaves_like 'snippet create data is tracked'
it_behaves_like 'an error service response when save fails' it_behaves_like 'an error service response when save fails'
it_behaves_like 'creates repository and files' 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 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