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/experience_spec.rb')
-rw-r--r--spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb69
1 files changed, 60 insertions, 9 deletions
diff --git a/spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb b/spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb
index b742eff3f56..8cd2345822e 100644
--- a/spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb
+++ b/spec/lib/gitlab/email/message/in_product_marketing/experience_spec.rb
@@ -22,14 +22,36 @@ RSpec.describe Gitlab::Email::Message::InProductMarketing::Experience do
expect(message.cta_text).to be_nil
end
- describe '#feedback_link' do
- let(:member_count) { 2 }
+ describe 'feedback URL' do
+ before do
+ allow(message).to receive(:onboarding_progress).and_return(1)
+ allow(message).to receive(:show_invite_link).and_return(true)
+ end
+
+ subject do
+ message.feedback_link(1)
+ end
+
+ it { is_expected.to start_with(Gitlab::Saas.com_url) }
+
+ context 'when in development' do
+ let(:root_url) { 'http://example.com' }
+
+ before do
+ allow(message).to receive(:root_url).and_return(root_url)
+ stub_rails_env('development')
+ end
+
+ it { is_expected.to start_with(root_url) }
+ end
+ end
+
+ describe 'feedback URL show_invite_link query param' do
let(:user_access) { GroupMember::DEVELOPER }
let(:preferred_language) { 'en' }
before do
allow(message).to receive(:onboarding_progress).and_return(1)
- allow(group).to receive(:member_count).and_return(member_count)
allow(group).to receive(:max_member_access_for_user).and_return(user_access)
allow(user).to receive(:preferred_language).and_return(preferred_language)
end
@@ -41,12 +63,6 @@ RSpec.describe Gitlab::Email::Message::InProductMarketing::Experience do
it { is_expected.to eq('true') }
- context 'with only one member' do
- let(:member_count) { 1 }
-
- it { is_expected.to eq('false') }
- end
-
context 'with less than developer access' do
let(:user_access) { GroupMember::GUEST }
@@ -59,6 +75,41 @@ RSpec.describe Gitlab::Email::Message::InProductMarketing::Experience do
it { is_expected.to eq('false') }
end
end
+
+ describe 'feedback URL show_incentive query param' do
+ let(:show_invite_link) { true }
+ let(:member_count) { 2 }
+ let(:query) do
+ uri = URI.parse(message.feedback_link(1))
+ Rack::Utils.parse_query(uri.query).with_indifferent_access
+ end
+
+ before do
+ allow(message).to receive(:onboarding_progress).and_return(1)
+ allow(message).to receive(:show_invite_link).and_return(show_invite_link)
+ allow(group).to receive(:member_count).and_return(member_count)
+ end
+
+ subject { query[:show_incentive] }
+
+ it { is_expected.to eq('true') }
+
+ context 'with only one member' do
+ let(:member_count) { 1 }
+
+ it "is not present" do
+ expect(query).not_to have_key(:show_incentive)
+ end
+ end
+
+ context 'show_invite_link is false' do
+ let(:show_invite_link) { false }
+
+ it "is not present" do
+ expect(query).not_to have_key(:show_incentive)
+ end
+ end
+ end
end
end
end