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/requests/groups/email_campaigns_controller_spec.rb')
-rw-r--r--spec/requests/groups/email_campaigns_controller_spec.rb127
1 files changed, 0 insertions, 127 deletions
diff --git a/spec/requests/groups/email_campaigns_controller_spec.rb b/spec/requests/groups/email_campaigns_controller_spec.rb
deleted file mode 100644
index b6e765eba37..00000000000
--- a/spec/requests/groups/email_campaigns_controller_spec.rb
+++ /dev/null
@@ -1,127 +0,0 @@
-# frozen_string_literal: true
-
-require 'spec_helper'
-
-RSpec.describe Groups::EmailCampaignsController, feature_category: :navigation do
- using RSpec::Parameterized::TableSyntax
-
- describe 'GET #index', :snowplow do
- let_it_be(:group) { create(:group) }
- let_it_be(:project) { create(:project, group: group) }
- let_it_be(:user) { create(:user) }
-
- let(:track) { 'create' }
- let(:series) { '0' }
- let(:schema) { described_class::EMAIL_CAMPAIGNS_SCHEMA_URL }
- let(:subject_line_text) { Gitlab::Email::Message::InProductMarketing.for(track.to_sym).new(group: group, user: user, series: series.to_i).subject_line }
- let(:data) do
- {
- namespace_id: group.id,
- track: track.to_sym,
- series: series.to_i,
- subject_line: subject_line_text
- }
- end
-
- before do
- sign_in(user)
- group.add_developer(user)
- end
-
- subject do
- get group_email_campaigns_url(group, track: track, series: series)
- response
- end
-
- shared_examples 'track and redirect' do
- it 'redirects' do
- expect(subject).to have_gitlab_http_status(:redirect)
- end
-
- context 'on SaaS', :saas do
- it 'emits a snowplow event', :snowplow do
- subject
-
- expect_snowplow_event(
- category: described_class.name,
- action: 'click',
- context: [{
- schema: described_class::EMAIL_CAMPAIGNS_SCHEMA_URL,
- data: { namespace_id: group.id, series: series.to_i, subject_line: subject_line_text, track: track.to_s }
- }],
- user: user,
- namespace: group
- )
- end
-
- it 'does not save the cta_click' do
- expect(Users::InProductMarketingEmail).not_to receive(:save_cta_click)
-
- subject
- end
- end
-
- context 'when not on.com' do
- it 'saves the cta_click' do
- expect(Users::InProductMarketingEmail).to receive(:save_cta_click)
-
- subject
- end
-
- it 'does not track snowplow events' do
- subject
-
- expect_no_snowplow_event
- end
- end
- end
-
- shared_examples 'no track and 404' do
- it 'returns 404' do
- expect(subject).to have_gitlab_http_status(:not_found)
- end
-
- it 'does not emit a snowplow event', :snowplow do
- subject
-
- expect_no_snowplow_event
- end
- end
-
- describe 'track parameter' do
- context 'when valid' do
- where(track: Namespaces::InProductMarketingEmailsService::TRACKS.keys.without(:experience))
-
- with_them do
- it_behaves_like 'track and redirect'
- end
- end
-
- context 'when invalid' do
- where(track: [nil, 'xxxx'])
-
- with_them do
- it_behaves_like 'no track and 404'
- end
- end
- end
-
- describe 'series parameter' do
- context 'when valid' do
- where(series: (0..Namespaces::InProductMarketingEmailsService::TRACKS[:create][:interval_days].length - 1).to_a)
-
- with_them do
- it_behaves_like 'track and redirect'
- end
- end
-
- context 'when invalid' do
- where(series: [-1, nil, Namespaces::InProductMarketingEmailsService::TRACKS[:create][:interval_days].length])
-
- with_them do
- it_behaves_like 'no track and 404'
- end
- end
- end
- end
-end