Sha256: 9f18e2268a14f638e11f806002e9c4332cf01a28e00d72acf96a27134951418d

Contents?: true

Size: 1.45 KB

Versions: 3

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

3 entries across 3 versions & 1 rubygems

Version Path
decidim-0.1.0 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.0.8.1 decidim-admin/spec/commands/deliver_newsletter_spec.rb
decidim-0.0.7 decidim-admin/spec/commands/deliver_newsletter_spec.rb