Welcome to mirror list, hosted at ThFree Co, Russian Federation.

destroy_service_shared_examples.rb « issuable « services « shared_examples « support « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 31571b1ffb9fb93572fcaabe5f8c41e22587ab94 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# frozen_string_literal: true

shared_examples_for 'service scheduling async deletes' do
  it 'destroys associated todos asynchronously' do
    expect(worker_class)
      .to receive(:perform_async)
      .with(issuable.id, issuable.class.name)

    subject.execute(issuable)
  end

  it 'works inside a transaction' do
    expect(worker_class)
      .to receive(:perform_async)
      .with(issuable.id, issuable.class.name)

    ApplicationRecord.transaction do
      subject.execute(issuable)
    end
  end
end

shared_examples_for 'service deleting todos' do
  it_behaves_like 'service scheduling async deletes' do
    let(:worker_class) { TodosDestroyer::DestroyedIssuableWorker }
  end
end

shared_examples_for 'service deleting label links' do
  it_behaves_like 'service scheduling async deletes' do
    let(:worker_class) { Issuable::LabelLinksDestroyWorker }
  end
end