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

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2023-07-26 15:07:29 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2023-07-26 15:07:29 +0300
commit597d5ed08988cb00681eaf252d04ebae4bd24731 (patch)
treefa6c90ecda00858be51b790dad9e4d9098d29fdb /spec/mailers
parente2cf652edb5e9d9fa9a081952070074c07bf651e (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'spec/mailers')
-rw-r--r--spec/mailers/notify_spec.rb62
1 files changed, 62 insertions, 0 deletions
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 629dfdaf55e..976fe214c95 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -2056,6 +2056,68 @@ RSpec.describe Notify do
end
end
+ describe 'membership about to expire' do
+ context "with group membership" do
+ let_it_be(:group_member) { create(:group_member, source: group, expires_at: 7.days.from_now) }
+
+ subject { described_class.member_about_to_expire_email("Namespace", group_member.id) }
+
+ it_behaves_like 'an email sent from GitLab'
+ it_behaves_like 'it should not have Gmail Actions links'
+ it_behaves_like 'a user cannot unsubscribe through footer link'
+ it_behaves_like 'appearance header and footer enabled'
+ it_behaves_like 'appearance header and footer not enabled'
+
+ it 'contains all the useful information' do
+ is_expected.to deliver_to group_member.user.email
+ is_expected.to have_subject "Your membership will expire in 7 days"
+ is_expected.to have_body_text "group will expire in 7 days."
+ is_expected.to have_body_text group_url(group)
+ is_expected.to have_body_text group_group_members_url(group)
+ end
+ end
+
+ context "with project membership" do
+ let_it_be(:project_member) { create(:project_member, source: project, expires_at: 7.days.from_now) }
+
+ subject { described_class.member_about_to_expire_email('Project', project_member.id) }
+
+ it_behaves_like 'an email sent from GitLab'
+ it_behaves_like 'it should not have Gmail Actions links'
+ it_behaves_like 'a user cannot unsubscribe through footer link'
+ it_behaves_like 'appearance header and footer enabled'
+ it_behaves_like 'appearance header and footer not enabled'
+
+ it 'contains all the useful information' do
+ is_expected.to deliver_to project_member.user.email
+ is_expected.to have_subject "Your membership will expire in 7 days"
+ is_expected.to have_body_text "project will expire in 7 days."
+ is_expected.to have_body_text project_url(project)
+ is_expected.to have_body_text project_project_members_url(project)
+ end
+ end
+
+ context "with expired membership" do
+ let_it_be(:project_member) { create(:project_member, source: project, expires_at: Date.today) }
+
+ subject { described_class.member_about_to_expire_email('Project', project_member.id) }
+
+ it 'not deliver expiry email' do
+ should_not_email_anyone
+ end
+ end
+
+ context "with expiry notified membership" do
+ let_it_be(:project_member) { create(:project_member, source: project, expires_at: 7.days.from_now, expiry_notified_at: Date.today) }
+
+ subject { described_class.member_about_to_expire_email('Project', project_member.id) }
+
+ it 'not deliver expiry email' do
+ should_not_email_anyone
+ end
+ end
+ end
+
describe 'admin notification' do
let(:example_site_path) { root_path }
let(:user) { create(:user) }