diff options
author | Winnie Hellmann <winnie@gitlab.com> | 2017-11-03 11:26:52 +0000 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-11-03 11:26:52 +0000 |
commit | 6f1a4ba457afd92a12913a9eddd7af483f5cfff1 (patch) | |
tree | a95d5a1aa50afc13068cb11167c5b075b05994f1 /spec/models/group_spec.rb | |
parent | 7961c235d57bd1933d6687619a7b2162b9cf3bfc (diff) | |
download | gitlab-ce-6f1a4ba457afd92a12913a9eddd7af483f5cfff1.tar.gz |
Add system hooks user_rename and group_rename
Diffstat (limited to 'spec/models/group_spec.rb')
-rw-r--r-- | spec/models/group_spec.rb | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/spec/models/group_spec.rb b/spec/models/group_spec.rb index f36d6eeb327..0e1a7fdce0b 100644 --- a/spec/models/group_spec.rb +++ b/spec/models/group_spec.rb @@ -488,6 +488,47 @@ describe Group do end end + describe '#path_changed_hook' do + let(:system_hook_service) { SystemHooksService.new } + + context 'for a new group' do + let(:group) { build(:group) } + + before do + expect(group).to receive(:system_hook_service).and_return(system_hook_service) + end + + it 'does not trigger system hook' do + expect(system_hook_service).to receive(:execute_hooks_for).with(group, :create) + + group.save! + end + end + + context 'for an existing group' do + let(:group) { create(:group, path: 'old-path') } + + context 'when the path is changed' do + let(:new_path) { 'very-new-path' } + + it 'triggers the rename system hook' do + expect(group).to receive(:system_hook_service).and_return(system_hook_service) + expect(system_hook_service).to receive(:execute_hooks_for).with(group, :rename) + + group.update_attributes!(path: new_path) + end + end + + context 'when the path is not changed' do + it 'does not trigger system hook' do + expect(group).not_to receive(:system_hook_service) + + group.update_attributes!(name: 'new name') + end + end + end + end + describe '#secret_variables_for' do let(:project) { create(:project, group: group) } |