summaryrefslogtreecommitdiff
path: root/spec/support
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-12-16 17:00:43 +0000
committerRémy Coutable <remy@rymai.me>2016-12-16 17:00:43 +0000
commit02ecc2225a324778c796dc6556d0dcd07fe660a7 (patch)
treedd56152965364faa92480804de626a7c026a0c4b /spec/support
parentae71032d0af1730c359089f3edc9029a8b5c8acc (diff)
parent9f97fa4d9f4e86e8f1ff1db4621bcf81390936da (diff)
downloadgitlab-ce-02ecc2225a324778c796dc6556d0dcd07fe660a7.tar.gz
Merge branch '25339-2-webhooks-fired-for-issue-closed-and-reopened' into 'master'
Ensure issuable state changes only fire webhooks once Webhooks were fired twice when issuables were reopened or closed. Once for the status change and once for the `update` operation Closes #25339 See merge request !8101
Diffstat (limited to 'spec/support')
-rw-r--r--spec/support/services/issuable_update_service_shared_examples.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/spec/support/services/issuable_update_service_shared_examples.rb b/spec/support/services/issuable_update_service_shared_examples.rb
new file mode 100644
index 00000000000..a3336755773
--- /dev/null
+++ b/spec/support/services/issuable_update_service_shared_examples.rb
@@ -0,0 +1,17 @@
+shared_examples 'issuable update service' do
+ context 'changing state' do
+ before { expect(project).to receive(:execute_hooks).once }
+
+ context 'to reopened' do
+ it 'executes hooks only once' do
+ described_class.new(project, user, state_event: 'reopen').execute(closed_issuable)
+ end
+ end
+
+ context 'to closed' do
+ it 'executes hooks only once' do
+ described_class.new(project, user, state_event: 'close').execute(open_issuable)
+ end
+ end
+ end
+end