Skip to content
代码片段 群组 项目
提交 38e54d22 编辑于 作者: Peter Leitzen's avatar Peter Leitzen 提交者: Marius Bobin
浏览文件

Add specs for email previews

These are plain smoke tests.

Exclude one spec due to a legacy error.
上级 fd700ca2
No related branches found
No related tags found
无相关合并请求
......@@ -61,7 +61,7 @@ def note_merge_request_email_for_diff_discussion
end
def new_mention_in_merge_request_email
Notify.new_mention_in_merge_request_email(user.id, issue.id, user.id).message
Notify.new_mention_in_merge_request_email(user.id, merge_request.id, user.id).message
end
def closed_issue_email
......@@ -97,7 +97,7 @@ def new_merge_request_email
end
def closed_merge_request_email
Notify.closed_merge_request_email(user.id, issue.id, user.id).message
Notify.closed_merge_request_email(user.id, merge_request.id, user.id).message
end
def merge_request_status_email
......@@ -205,14 +205,6 @@ def inactive_project_deletion_warning
Notify.inactive_project_deletion_warning_email(project, user, '2022-04-22').message
end
def user_auto_banned_instance_email
::Notify.user_auto_banned_email(user.id, user.id, max_project_downloads: 5, within_seconds: 600).message
end
def user_auto_banned_namespace_email
::Notify.user_auto_banned_email(user.id, user.id, max_project_downloads: 5, within_seconds: 600, group: group).message
end
def verification_instructions_email
Notify.verification_instructions_email(user.id, token: '123456', expires_in: 60).message
end
......@@ -220,7 +212,7 @@ def verification_instructions_email
private
def project
@project ||= Project.find_by_full_path('gitlab-org/gitlab-test')
@project ||= Project.first
end
def issue
......
......@@ -61,7 +61,7 @@
config.action_mailer.raise_delivery_errors = true
# Don't make a mess when bootstrapping a development environment
config.action_mailer.perform_deliveries = (ENV['BOOTSTRAP'] != '1')
config.action_mailer.preview_path = "#{Rails.root}{/ee,}/app/mailers/previews"
config.action_mailer.preview_path = GitlabEdition.path_glob('app/mailers/previews')
config.eager_load = false
......
......@@ -48,6 +48,8 @@
# ActionMailer::Base.deliveries array.
config.action_mailer.delivery_method = :test
config.action_mailer.preview_path = GitlabEdition.path_glob('app/mailers/previews')
# Print deprecation notices to the stderr
config.active_support.deprecation = :stderr
......
......@@ -67,6 +67,14 @@ def merge_commits_csv_email
'filename.csv'
).message
end
def user_auto_banned_instance_email
::Notify.user_auto_banned_email(user.id, user.id, max_project_downloads: 5, within_seconds: 600).message
end
def user_auto_banned_namespace_email
::Notify.user_auto_banned_email(user.id, user.id, max_project_downloads: 5, within_seconds: 600, group: group).message
end
end
private
......
......@@ -7,6 +7,21 @@ def self.root
Pathname.new(File.expand_path('..', __dir__))
end
def self.path_glob(path)
"#{root}/#{extension_path_prefixes}#{path}"
end
def self.extension_path_prefixes
path_prefixes = extensions
return '' if path_prefixes.empty?
path_prefixes.map! { "#{_1}/" }
path_prefixes.unshift ''
# For example `{,ee/,jh/}`
"{#{path_prefixes.join(',')}}"
end
def self.extensions
if jh?
%w[ee jh]
......
# frozen_string_literal: true
require 'fast_spec_helper'
require 'rspec-parameterized'
RSpec.describe GitlabEdition do
def remove_instance_variable(ivar)
......@@ -27,7 +28,57 @@ def remove_instance_variable(ivar)
end
end
describe 'extensions' do
describe '.path_glob' do
using RSpec::Parameterized::TableSyntax
let(:root) { described_class.root.to_s }
subject { described_class.path_glob(path) }
before do
allow(described_class).to receive(:jh?).and_return(jh)
allow(described_class).to receive(:ee?).and_return(ee)
end
where(:ee, :jh, :path, :expected) do
false | false | nil | ''
true | false | nil | '{,ee/}'
true | true | nil | '{,ee/,jh/}'
false | true | nil | '{,ee/,jh/}'
false | false | 'app/models' | 'app/models'
true | false | 'app/models' | '{,ee/}app/models'
true | true | 'app/models' | '{,ee/,jh/}app/models'
false | true | 'app/models' | '{,ee/,jh/}app/models'
end
with_them do
it { is_expected.to eq("#{root}/#{expected}") }
end
end
describe '.extension_path_prefixes' do
using RSpec::Parameterized::TableSyntax
subject { described_class.extension_path_prefixes }
before do
allow(described_class).to receive(:jh?).and_return(jh)
allow(described_class).to receive(:ee?).and_return(ee)
end
where(:ee, :jh, :expected) do
false | false | ''
true | false | '{,ee/}'
true | true | '{,ee/,jh/}'
false | true | '{,ee/,jh/}'
end
with_them do
it { is_expected.to eq(expected) }
end
end
describe '.extensions' do
context 'when .jh? is true' do
before do
allow(described_class).to receive(:jh?).and_return(true)
......
# frozen_string_literal: true
require 'spec_helper'
RSpec.describe 'Mailer previews' do
# Setup needed for email previews
let_it_be(:group) { create(:group) }
let_it_be(:project) { create(:project, :repository, :import_failed, group: group, import_last_error: 'some error') }
let_it_be(:user) { create(:user) }
let_it_be(:pipeline) { create(:ci_pipeline, project: project) }
let_it_be(:merge_request) { create(:merge_request, source_project: project) }
let_it_be(:milestone) { create(:milestone, project: project) }
let_it_be(:issue) { create(:issue, project: project, milestone: milestone) }
let_it_be(:remote_mirror) { create(:remote_mirror, project: project) }
let_it_be(:member) { create(:project_member, :maintainer, project: project, created_by: user) }
Gitlab.ee do
let_it_be(:epic) { create(:epic, group: group) }
end
let(:expected_kind) { [Mail::Message, ActionMailer::MessageDelivery] }
let(:pending_failures) do
{
'NotifyPreview#note_merge_request_email_for_diff_discussion' =>
'https://gitlab.com/gitlab-org/gitlab/-/issues/372885'
}
end
subject { preview.call(email) }
where(:preview, :email) do
ActionMailer::Preview.all.flat_map { |preview| preview.emails.map { |email| [preview, email] } }
end
with_them do
it do
issue_link = pending_failures["#{preview.name}##{email}"]
pending "See #{issue_link}" if issue_link
is_expected.to be_kind_of(Mail::Message).or(be_kind_of(ActionMailer::MessageDelivery))
end
end
end
......@@ -69,3 +69,9 @@ mapping:
- source: lib/gitlab/usage_data_counters/known_events/.+\.yml
test: spec/lib/gitlab/usage_data_spec.rb
# Mailer previews
- source: (ee/)?app/mailers/previews/.+\.rb
test: spec/mailers/previews_spec.rb
- source: ee/app/mailers/ee/preview/.+\.rb
test: spec/mailers/previews_spec.rb
0% 加载中 .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册