Sha256: 8445a6852cff54a3cdb83e2f73ba8b8efc110727a9595d65d554f0d3b326f504

Contents?: true

Size: 1.45 KB

Versions: 9

Compression:

Stored size: 1.45 KB

Contents

# frozen_string_literal: true

require "spec_helper"

module Decidim
  module Admin
    describe DeliverNewsletter, :db do
      describe "call" do
        let(:organization) { create(:organization) }
        let(:newsletter) do
          create(:newsletter,
                 organization: organization,
                 body: Decidim::Faker::Localized.sentence(3))
        end

        let!(:deliverable_users) do
          create_list(:user, 5, :confirmed, organization: organization, newsletter_notifications: true)
        end

        let!(:not_deliverable_users) do
          create_list(:user, 3, organization: organization, newsletter_notifications: false)
        end
        let!(:unconfirmed_users) do
          create_list(:user, 3, organization: organization, newsletter_notifications: true)
        end

        let(:command) { described_class.new(newsletter) }

        it "updates the counters and delivers to the right users" do
          clear_emails
          expect(emails.length).to eq(0)

          perform_enqueued_jobs { command.call }

          expect(emails.length).to eq(5)

          deliverable_users.each do |user|
            email = emails.find { |e| e.to.include? user.email }
            expect(email_body(email)).to include(newsletter.body[user.locale])
          end

          newsletter.reload
          expect(newsletter.total_deliveries).to eq(5)
          expect(newsletter.total_recipients).to eq(5)
        end
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
decidim-0.4.4 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.4.3 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.4.2 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.4.1 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.4.0 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.3.2 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.3.1 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.3.0 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.2.0 decidim-admin/spec/commands/deliver_newsletter_spec.rb