48 lines
1.4 KiB
Ruby
48 lines
1.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe Namespaces::InProductMarketingEmailsWorker, '#perform' do
|
|
context 'when the application setting is enabled' do
|
|
before do
|
|
stub_application_setting(in_product_marketing_emails_enabled: true)
|
|
end
|
|
|
|
context 'when the experiment is inactive' do
|
|
before do
|
|
stub_experiment(in_product_marketing_emails: false)
|
|
end
|
|
|
|
it 'does not execute the in product marketing emails service' do
|
|
expect(Namespaces::InProductMarketingEmailsService).not_to receive(:send_for_all_tracks_and_intervals)
|
|
|
|
subject.perform
|
|
end
|
|
end
|
|
|
|
context 'when the experiment is active' do
|
|
before do
|
|
stub_experiment(in_product_marketing_emails: true)
|
|
end
|
|
|
|
it 'calls the send_for_all_tracks_and_intervals method on the in product marketing emails service' do
|
|
expect(Namespaces::InProductMarketingEmailsService).to receive(:send_for_all_tracks_and_intervals)
|
|
|
|
subject.perform
|
|
end
|
|
end
|
|
end
|
|
|
|
context 'when the application setting is disabled' do
|
|
before do
|
|
stub_application_setting(in_product_marketing_emails_enabled: false)
|
|
end
|
|
|
|
it 'does not execute the in product marketing emails service' do
|
|
expect(Namespaces::InProductMarketingEmailsService).not_to receive(:send_for_all_tracks_and_intervals)
|
|
|
|
subject.perform
|
|
end
|
|
end
|
|
end
|