# frozen_string_literal: true
require_relative '../environment.rb'

describe EmailWorker do
  before do
    Mail::TestMailer.deliveries.clear
  end

  it 'sends an email' do
    worker = EmailWorker.new
    worker.perform({
      'from'    => 'from@example.com',
      'to'      => 'to@example.com',
      'subject' => 'Hello World',
      'body'    => 'testing'
    })

    mail = Mail::TestMailer.deliveries.first
    _(mail.from.first).must_equal 'from@example.com'
    _(mail.to.first).must_equal 'to@example.com'
    _(mail.subject).must_equal 'Hello World'
    body = mail.body.to_s
    _(body).must_match /testing/
    _(body).must_match /unsubscribe/
  end

  it 'sends an email without a footer' do
    worker = EmailWorker.new
    worker.perform({
      'no_footer' => true,
      'from'      => 'from@example.com',
      'to'        => 'to@example.com',
      'subject'   => 'Hello World',
      'body'      => 'testing'
    })
    body = Mail::TestMailer.deliveries.first.body.to_s
    _(body).must_match /testing/
    _(body).wont_match /unsubscribe/
  end
end
