# frozen_string_literal: true

require 'spec_helper'

describe PropagateServiceTemplateWorker do
  include ExclusiveLeaseHelpers

  describe '#perform' do
    it 'calls the propagate service with the template' do
      template = PushoverService.create(
        template: true,
        active: true,
        properties: {
          device: 'MyDevice',
          sound: 'mic',
          priority: 4,
          user_key: 'asdf',
          api_key: '123456789'
        })

      stub_exclusive_lease("propagate_service_template_worker:#{template.id}",
        timeout: PropagateServiceTemplateWorker::LEASE_TIMEOUT)

      expect(Projects::PropagateServiceTemplate)
        .to receive(:propagate)
        .with(template)

      subject.perform(template.id)
    end
  end
end
