Sha256: 1d5d107da837212321e53ba9399edd3570c0e07505c3f0c50b847e5887e56ccb

Contents?: true

Size: 1.56 KB

Versions: 16

Compression:

Stored size: 1.56 KB

Contents

# frozen_string_literal: true

require "spec_helper"

module Decidim
  module Admin
    describe NewsletterJob do
      let!(:newsletter) { create(:newsletter, organization: organization, total_deliveries: 0) }
      let!(:organization) { create(:organization) }
      let!(:another_organization) { create(:organization) }
      let!(:deliverable_user) { create(:user, :confirmed, newsletter_notifications: true, organization: organization) }
      let!(:another_deliverable_user) { create(:user, :confirmed, newsletter_notifications: true, organization: another_organization) }
      let!(:undeliverable_user) { create(:user, newsletter_notifications: true, organization: organization) }
      let!(:non_deliverable_user) { create(:user, :confirmed, newsletter_notifications: false, organization: organization) }
      let!(:deleted_user) { create(:user, :confirmed, :deleted, newsletter_notifications: true, organization: organization) }

      it "delivers a newsletter to a the eligible users" do
        expect(NewsletterDeliveryJob).to receive(:perform_later).with(deliverable_user, newsletter)
        expect(NewsletterDeliveryJob).not_to receive(:perform_later).with(undeliverable_user, newsletter)

        NewsletterJob.perform_now(newsletter)
      end

      it "updates the recipients count" do
        NewsletterJob.perform_now(newsletter)
        expect(newsletter.reload.total_recipients).to eq(1)
      end

      it "updates the deliveries count" do
        NewsletterJob.perform_now(newsletter)
        expect(newsletter.reload.total_deliveries).to eq(0)
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
decidim-0.6.8 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.7 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.6 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.5 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.4 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.3 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.2 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.1 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.6.0 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.5.1 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.5.0 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.4.4 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.4.3 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.4.2 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.4.1 decidim-admin/spec/jobs/newsletter_job_spec.rb
decidim-0.4.0 decidim-admin/spec/jobs/newsletter_job_spec.rb