summaryrefslogtreecommitdiff
path: root/spec/mailers/emails/issues_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/mailers/emails/issues_spec.rb')
-rw-r--r--spec/mailers/emails/issues_spec.rb49
1 files changed, 49 insertions, 0 deletions
diff --git a/spec/mailers/emails/issues_spec.rb b/spec/mailers/emails/issues_spec.rb
index 5b5bd6f4308..dfd974aa5f3 100644
--- a/spec/mailers/emails/issues_spec.rb
+++ b/spec/mailers/emails/issues_spec.rb
@@ -6,6 +6,12 @@ require 'email_spec'
describe Emails::Issues do
include EmailSpec::Matchers
+ it 'adds email methods to Notify' do
+ subject.instance_methods.each do |email_method|
+ expect(Notify).to be_respond_to(email_method)
+ end
+ end
+
describe "#import_issues_csv_email" do
let(:user) { create(:user) }
let(:project) { create(:project) }
@@ -39,4 +45,47 @@ describe Emails::Issues do
it_behaves_like 'appearance header and footer not enabled'
end
end
+
+ describe '#issues_csv_email' do
+ let(:user) { create(:user) }
+ let(:empty_project) { create(:project, path: 'myproject') }
+ let(:export_status) { { truncated: false, rows_expected: 3, rows_written: 3 } }
+ let(:attachment) { subject.attachments.first }
+
+ subject { Notify.issues_csv_email(user, empty_project, "dummy content", export_status) }
+
+ include_context 'gitlab email notification'
+
+ it 'attachment has csv mime type' do
+ expect(attachment.mime_type).to eq 'text/csv'
+ end
+
+ it 'generates a useful filename' do
+ expect(attachment.filename).to include(Date.today.year.to_s)
+ expect(attachment.filename).to include('issues')
+ expect(attachment.filename).to include('myproject')
+ expect(attachment.filename).to end_with('.csv')
+ end
+
+ it 'mentions number of issues and project name' do
+ expect(subject).to have_content '3'
+ expect(subject).to have_content empty_project.name
+ end
+
+ it "doesn't need to mention truncation by default" do
+ expect(subject).not_to have_content 'truncated'
+ end
+
+ context 'when truncated' do
+ let(:export_status) { { truncated: true, rows_expected: 12, rows_written: 10 } }
+
+ it 'mentions that the csv has been truncated' do
+ expect(subject).to have_content 'truncated'
+ end
+
+ it 'mentions the number of issues written and expected' do
+ expect(subject).to have_content '10 of 12 issues'
+ end
+ end
+ end
end