summaryrefslogtreecommitdiff
path: root/spec/services
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2017-05-04 12:13:33 +0200
committerJames Lopez <james@jameslopez.es>2017-05-04 12:13:33 +0200
commitf81cf84035213002ce7931af6c3ffa917fe7fcbd (patch)
tree3393496e46cdacd5db03a2348dda8ed1a58a3d57 /spec/services
parent2f7f1ce4e66db847414e2fc3de09556e75c51eb4 (diff)
downloadgitlab-ce-f81cf84035213002ce7931af6c3ffa917fe7fcbd.tar.gz
refactor worker into service
Diffstat (limited to 'spec/services')
-rw-r--r--spec/services/projects/propagate_service_spec.rb40
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/services/projects/propagate_service_spec.rb b/spec/services/projects/propagate_service_spec.rb
new file mode 100644
index 00000000000..ee40a7ecbab
--- /dev/null
+++ b/spec/services/projects/propagate_service_spec.rb
@@ -0,0 +1,40 @@
+require 'spec_helper'
+
+describe Projects::PropagateService, services: true do
+ describe '.propagate!' do
+ let!(:service_template) do
+ PushoverService.create(
+ template: true,
+ active: true,
+ properties: {
+ device: 'MyDevice',
+ sound: 'mic',
+ priority: 4,
+ user_key: 'asdf',
+ api_key: '123456789'
+ })
+ end
+
+ let!(:project) { create(:empty_project) }
+
+ it 'creates services for projects' do
+ expect { described_class.propagate!(service_template) }.
+ to change { Service.count }.by(1)
+ end
+
+ it 'does not create the service if it exists already' do
+ Service.build_from_template(project.id, service_template).save!
+
+ expect { described_class.propagate!(service_template) }.
+ not_to change { Service.count }
+ end
+
+ it 'creates the service containing the template attributes' do
+ described_class.propagate!(service_template)
+
+ service = Service.find_by(type: service_template.type, template: false)
+
+ expect(service.properties).to eq(service_template.properties)
+ end
+ end
+end