diff options
author | James Lopez <james@jameslopez.es> | 2017-05-04 12:13:33 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2017-05-04 12:13:33 +0200 |
commit | f81cf84035213002ce7931af6c3ffa917fe7fcbd (patch) | |
tree | 3393496e46cdacd5db03a2348dda8ed1a58a3d57 /spec/services | |
parent | 2f7f1ce4e66db847414e2fc3de09556e75c51eb4 (diff) | |
download | gitlab-ce-f81cf84035213002ce7931af6c3ffa917fe7fcbd.tar.gz |
refactor worker into service
Diffstat (limited to 'spec/services')
-rw-r--r-- | spec/services/projects/propagate_service_spec.rb | 40 |
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 |