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/models/member_spec.rb')
-rw-r--r--spec/models/member_spec.rb45
1 files changed, 44 insertions, 1 deletions
diff --git a/spec/models/member_spec.rb b/spec/models/member_spec.rb
index 247be7654d8..372fc40afcc 100644
--- a/spec/models/member_spec.rb
+++ b/spec/models/member_spec.rb
@@ -408,6 +408,20 @@ RSpec.describe Member do
it { is_expected.not_to include @member_with_minimal_access }
end
+ describe '.without_invites_and_requests' do
+ subject { described_class.without_invites_and_requests.to_a }
+
+ it { is_expected.to include @owner }
+ it { is_expected.to include @maintainer }
+ it { is_expected.not_to include @invited_member }
+ it { is_expected.to include @accepted_invite_member }
+ it { is_expected.not_to include @requested_member }
+ it { is_expected.to include @accepted_request_member }
+ it { is_expected.to include @blocked_maintainer }
+ it { is_expected.to include @blocked_developer }
+ it { is_expected.not_to include @member_with_minimal_access }
+ end
+
describe '.connected_to_user' do
subject { described_class.connected_to_user.to_a }
@@ -594,6 +608,18 @@ RSpec.describe Member do
end
end
+ context 'when called with a known user secondary email' do
+ let(:secondary_email) { create(:email, email: 'secondary@example.com', user: user) }
+
+ it 'adds the user as a member' do
+ expect(source.users).not_to include(user)
+
+ described_class.add_user(source, secondary_email.email, :maintainer)
+
+ expect(source.users.reload).to include(user)
+ end
+ end
+
context 'when called with an unknown user email' do
it 'creates an invited member' do
expect(source.users).not_to include(user)
@@ -778,10 +804,27 @@ RSpec.describe Member do
let(:invited_member) { create(:project_member, invite_email: "user@example.com", user: nil) }
let(:requester) { create(:project_member, requested_at: Time.current.utc) }
- it { expect(invited_member).to be_invite }
+ it { expect(invited_member).to be_pending }
it { expect(requester).to be_pending }
end
+ describe '#hook_prerequisites_met?' do
+ let(:member) { create(:project_member) }
+
+ context 'when the member does not have an associated user' do
+ it 'returns false' do
+ member.update_column(:user_id, nil)
+ expect(member.reload.hook_prerequisites_met?).to eq(false)
+ end
+ end
+
+ context 'when the member has an associated user' do
+ it 'returns true' do
+ expect(member.hook_prerequisites_met?).to eq(true)
+ end
+ end
+ end
+
describe "#accept_invite!" do
let!(:member) { create(:project_member, invite_email: "user@example.com", user: nil) }
let(:user) { create(:user) }