summaryrefslogtreecommitdiff
path: root/spec/models/user_spec.rb
diff options
context:
space:
mode:
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r--spec/models/user_spec.rb47
1 files changed, 47 insertions, 0 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 24384e8bf22..441aa793133 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -54,6 +54,8 @@
require 'spec_helper'
describe User do
+ include Gitlab::CurrentSettings
+
describe "Associations" do
it { is_expected.to have_one(:namespace) }
it { is_expected.to have_many(:snippets).class_name('Snippet').dependent(:destroy) }
@@ -112,6 +114,51 @@ describe User do
user = build(:user, email: "lol!'+=?><#$%^&*()@gmail.com")
expect(user).to be_invalid
end
+
+ context 'when no signup domains listed' do
+ before { allow(current_application_settings).to receive(:restricted_signup_domains).and_return([]) }
+ it 'accepts any email' do
+ user = build(:user, email: "info@example.com")
+ expect(user).to be_valid
+ end
+ end
+
+ context 'when a signup domain is listed and subdomains are allowed' do
+ before { allow(current_application_settings).to receive(:restricted_signup_domains).and_return(['example.com', '*.example.com']) }
+ it 'accepts info@example.com' do
+ user = build(:user, email: "info@example.com")
+ expect(user).to be_valid
+ end
+
+ it 'accepts info@test.example.com' do
+ user = build(:user, email: "info@test.example.com")
+ expect(user).to be_valid
+ end
+
+ it 'rejects example@test.com' do
+ user = build(:user, email: "example@test.com")
+ expect(user).to be_invalid
+ end
+ end
+
+ context 'when a signup domain is listed and subdomains are not allowed' do
+ before { allow(current_application_settings).to receive(:restricted_signup_domains).and_return(['example.com']) }
+
+ it 'accepts info@example.com' do
+ user = build(:user, email: "info@example.com")
+ expect(user).to be_valid
+ end
+
+ it 'rejects info@test.example.com' do
+ user = build(:user, email: "info@test.example.com")
+ expect(user).to be_invalid
+ end
+
+ it 'rejects example@test.com' do
+ user = build(:user, email: "example@test.com")
+ expect(user).to be_invalid
+ end
+ end
end
end