Welcome to mirror list, hosted at ThFree Co, Russian Federation.

emails_on_push_worker_spec.rb « workers « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 3600c771075293c0413caa9ed753b24a9625261b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
require 'spec_helper'

describe EmailsOnPushWorker do
  include RepoHelpers

  let(:project) { create(:project) }
  let(:user) { create(:user) }
  let(:data) { Gitlab::PushDataBuilder.build_sample(project, user) }

  subject { EmailsOnPushWorker.new }

  before do
    allow(Project).to receive(:find).and_return(project)
  end

  describe "#perform" do
    it "sends mail" do
      subject.perform(project.id, user.email, data.stringify_keys)

      email = ActionMailer::Base.deliveries.last
      expect(email.subject).to include('Change some files')
      expect(email.to).to eq([user.email])
    end

    it "gracefully handles an input SMTP error" do
      ActionMailer::Base.deliveries.clear
      allow(Notify).to receive(:repository_push_email).and_raise(Net::SMTPFatalError)

      subject.perform(project.id, user.email, data.stringify_keys)

      expect(ActionMailer::Base.deliveries.count).to eq(0)
    end
  end
end