mirror of
https://github.com/wahyd4/ocelots.git
synced 2026-08-10 21:46:16 +10:00
45 lines
1.5 KiB
Ruby
45 lines
1.5 KiB
Ruby
require 'spec_helper'
|
|
|
|
describe Membership do
|
|
|
|
it 'delegates fields to associated objects' do
|
|
person = Person.create!(email: 'test@user.com', full_name: 'Test User', account: 'test_account')
|
|
team = person.teams.create!(name: 'Test Team', slug: 'test_team')
|
|
membership = person.memberships.first
|
|
|
|
membership.email.should == 'test@user.com'
|
|
membership.team_name.should == 'Test Team'
|
|
end
|
|
|
|
describe :create_pending_membership do
|
|
before(:each) do
|
|
@inviter = Person.create(email: 'test_inviter@inviter.com', full_name: 'Test Inviter', account: 'test_inviter')
|
|
@invitee = Person.create(email: 'test@user.com', full_name: 'Test User', account: 'test_account')
|
|
@team = @inviter.teams.create(name: 'Test Team', slug: 'test_team')
|
|
end
|
|
|
|
it 'ensure create pending membership' do
|
|
mail = Object.new
|
|
PersonMailer.should_receive(:invite).and_return(mail)
|
|
mail.should_receive(:deliver)
|
|
|
|
Organisation.create(name: 'User', domains: 'user.com')
|
|
lambda do
|
|
Membership.create_pending_membership(@inviter, @invitee, @team)
|
|
end.should change(Membership, :count).by(1)
|
|
end
|
|
|
|
it 'ensure do not invite someone who has a pending membership with a team' do
|
|
@invitee.teams << @team
|
|
lambda do
|
|
Membership.create_pending_membership(@inviter, @invitee, @team)
|
|
end.should_not change(Membership, :count)
|
|
end
|
|
|
|
it 'ensure do not invite self' do
|
|
lambda do
|
|
Membership.create_pending_membership(@inviter, @inviter, @team)
|
|
end.should_not change(Membership, :count)
|
|
end
|
|
end
|
|
end |