diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 13:18:24 +0000 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2021-09-20 13:18:24 +0000 |
commit | 0653e08efd039a5905f3fa4f6e9cef9f5d2f799c (patch) | |
tree | 4dcc884cf6d81db44adae4aa99f8ec1233a41f55 /spec/services/todos/destroy | |
parent | 744144d28e3e7fddc117924fef88de5d9674fe4c (diff) | |
download | gitlab-ce-0653e08efd039a5905f3fa4f6e9cef9f5d2f799c.tar.gz |
Add latest changes from gitlab-org/gitlab@14-3-stable-eev14.3.0-rc42
Diffstat (limited to 'spec/services/todos/destroy')
-rw-r--r-- | spec/services/todos/destroy/design_service_spec.rb | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/services/todos/destroy/design_service_spec.rb b/spec/services/todos/destroy/design_service_spec.rb new file mode 100644 index 00000000000..61a6718dc9d --- /dev/null +++ b/spec/services/todos/destroy/design_service_spec.rb @@ -0,0 +1,40 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe Todos::Destroy::DesignService do + let_it_be(:user) { create(:user) } + let_it_be(:user_2) { create(:user) } + let_it_be(:design) { create(:design) } + let_it_be(:design_2) { create(:design) } + let_it_be(:design_3) { create(:design) } + + let_it_be(:create_action) { create(:design_action, design: design)} + let_it_be(:create_action_2) { create(:design_action, design: design_2)} + + describe '#execute' do + before do + create(:todo, user: user, target: design) + create(:todo, user: user_2, target: design) + create(:todo, user: user, target: design_2) + create(:todo, user: user, target: design_3) + end + + subject { described_class.new([design.id, design_2.id, design_3.id]).execute } + + context 'when the design has been archived' do + let_it_be(:archive_action) { create(:design_action, design: design, event: :deletion)} + let_it_be(:archive_action_2) { create(:design_action, design: design_3, event: :deletion)} + + it 'removes todos for that design' do + expect { subject }.to change { Todo.count }.from(4).to(1) + end + end + + context 'when no design has been archived' do + it 'does not remove any todos' do + expect { subject }.not_to change { Todo.count }.from(4) + end + end + end +end |