summaryrefslogtreecommitdiff
path: root/spec/lib/gitlab/incoming_email_spec.rb
diff options
context:
space:
mode:
authorLin Jen-Shin <godfat@godfat.org>2017-02-03 17:16:21 +0800
committerLin Jen-Shin <godfat@godfat.org>2017-02-03 17:16:21 +0800
commit078689447313a2bd119b9376460272492b055796 (patch)
treee3cd48b7eae8786a5e217025e652a366d86dbdf5 /spec/lib/gitlab/incoming_email_spec.rb
parent15f8642994bc74bea1a39d079c70b1f4e4730bf1 (diff)
parentfd46fb1cd9cc1fdf826d31261aa594baa38d4898 (diff)
downloadgitlab-ce-078689447313a2bd119b9376460272492b055796.tar.gz
Merge remote-tracking branch 'upstream/master' into fix-references-header-parsing
* upstream/master: (574 commits) remove dateFormat global exception fix relative paths to xterm.js within fit.js use setFixtures instead of fixture.set prevent u2f tests from triggering a form submission while testing simplify test for focus state preload projects.json fixture preload projects.json fixture rework tests which rely on teaspoon-specific behavior Only render hr when user can't archive project. use setFixtures instead of fixture.set ensure helper classes and constants are exposed globally preload projects.json fixture fix fixture references in environments_spec allow console.xxx in tests, reorder eslint rules alphabetically remove redundant "data-toggle" attribute so Vue doesn't complain fix broken reference to formatDate in a CommonJS environment fix errors within gl_dropdown_spec.js when running in Karma fix intermittant errors in merge_commit_message_toggle_spec.rb Update installation docs to include Docker, others ignore node_modules in rubocop ...
Diffstat (limited to 'spec/lib/gitlab/incoming_email_spec.rb')
-rw-r--r--spec/lib/gitlab/incoming_email_spec.rb42
1 files changed, 42 insertions, 0 deletions
diff --git a/spec/lib/gitlab/incoming_email_spec.rb b/spec/lib/gitlab/incoming_email_spec.rb
index 01d0cb6cbd6..698bd72d0f8 100644
--- a/spec/lib/gitlab/incoming_email_spec.rb
+++ b/spec/lib/gitlab/incoming_email_spec.rb
@@ -23,6 +23,48 @@ describe Gitlab::IncomingEmail, lib: true do
end
end
+ describe 'self.supports_wildcard?' do
+ context 'address contains the wildard placeholder' do
+ before do
+ stub_incoming_email_setting(address: 'replies+%{key}@example.com')
+ end
+
+ it 'confirms that wildcard is supported' do
+ expect(described_class.supports_wildcard?).to be_truthy
+ end
+ end
+
+ context "address doesn't contain the wildcard placeholder" do
+ before do
+ stub_incoming_email_setting(address: 'replies@example.com')
+ end
+
+ it 'returns that wildcard is not supported' do
+ expect(described_class.supports_wildcard?).to be_falsey
+ end
+ end
+
+ context 'address is not set' do
+ before do
+ stub_incoming_email_setting(address: nil)
+ end
+
+ it 'returns that wildard is not supported' do
+ expect(described_class.supports_wildcard?).to be_falsey
+ end
+ end
+ end
+
+ context 'self.unsubscribe_address' do
+ before do
+ stub_incoming_email_setting(address: 'replies+%{key}@example.com')
+ end
+
+ it 'returns the address with interpolated reply key and unsubscribe suffix' do
+ expect(described_class.unsubscribe_address('key')).to eq('replies+key+unsubscribe@example.com')
+ end
+ end
+
context "self.reply_address" do
before do
stub_incoming_email_setting(address: "replies+%{key}@example.com")