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:
Diffstat (limited to 'spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb')
-rw-r--r--spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb79
1 files changed, 79 insertions, 0 deletions
diff --git a/spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb b/spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb
new file mode 100644
index 00000000000..3c0d83d0f9e
--- /dev/null
+++ b/spec/lib/gitlab/email/message/in_product_marketing/helper_spec.rb
@@ -0,0 +1,79 @@
+# frozen_string_literal: true
+
+require 'spec_helper'
+
+RSpec.describe Gitlab::Email::Message::InProductMarketing::Helper do
+ describe 'unsubscribe_message' do
+ include Gitlab::Routing
+
+ let(:dummy_class_with_helper) do
+ Class.new do
+ include Gitlab::Email::Message::InProductMarketing::Helper
+ include Gitlab::Routing
+
+ def initialize(format = :html)
+ @format = format
+ end
+
+ def default_url_options
+ {}
+ end
+
+ attr_accessor :format
+ end
+ end
+
+ let(:format) { :html }
+
+ subject(:class_with_helper) { dummy_class_with_helper.new(format) }
+
+ context 'gitlab.com' do
+ before do
+ allow(Gitlab).to receive(:com?) { true }
+ end
+
+ context 'format is HTML' do
+ it 'returns the correct HTML' do
+ message = "If you no longer wish to receive marketing emails from us, " \
+ "you may <a href=\"%tag_unsubscribe_url%\">unsubscribe</a> at any time."
+ expect(class_with_helper.unsubscribe_message).to match message
+ end
+ end
+
+ context 'format is text' do
+ let(:format) { :text }
+
+ it 'returns the correct string' do
+ message = "If you no longer wish to receive marketing emails from us, " \
+ "you may unsubscribe (%tag_unsubscribe_url%) at any time."
+ expect(class_with_helper.unsubscribe_message.squish).to match message
+ end
+ end
+ end
+
+ context 'self-managed' do
+ context 'format is HTML' do
+ it 'returns the correct HTML' do
+ preferences_link = "http://example.com/preferences"
+ message = "To opt out of these onboarding emails, " \
+ "<a href=\"#{profile_notifications_url}\">unsubscribe</a>. " \
+ "If you don't want to receive marketing emails directly from GitLab, #{preferences_link}."
+ expect(class_with_helper.unsubscribe_message(preferences_link))
+ .to match message
+ end
+ end
+
+ context 'format is text' do
+ let(:format) { :text }
+
+ it 'returns the correct string' do
+ preferences_link = "http://example.com/preferences"
+ message = "To opt out of these onboarding emails, " \
+ "unsubscribe (#{profile_notifications_url}). " \
+ "If you don't want to receive marketing emails directly from GitLab, #{preferences_link}."
+ expect(class_with_helper.unsubscribe_message(preferences_link).squish).to match message
+ end
+ end
+ end
+ end
+end