FIX: do not delete already redeemed invite

This commit is contained in:
Arpit Jalan 2015-03-25 23:29:37 +05:30
parent 90de61ee3d
commit fb0e7dc0b2
2 changed files with 8 additions and 1 deletions

View file

@ -117,6 +117,6 @@ InviteRedeemer = Struct.new(:invite, :username, :name) do
end end
def delete_duplicate_invites def delete_duplicate_invites
Invite.where('invites.email = ? and invites.id != ?', invite.email, invite.id).delete_all Invite.where('invites.email = ? AND redeemed_at IS NULL AND invites.id != ?', invite.email, invite.id).delete_all
end end
end end

View file

@ -198,6 +198,13 @@ describe Invite do
expect(duplicate_invite).to be_nil expect(duplicate_invite).to be_nil
end end
it 'does not delete already redeemed invite' do
redeemed_invite = Fabricate(:invite, email: invite.email, invited_by: another_user, redeemed_at: 1.day.ago)
invite.redeem
used_invite = Invite.find_by(id: redeemed_invite.id)
expect(used_invite).not_to be_nil
end
end end
context 'enqueues a job to email "set password" instructions' do context 'enqueues a job to email "set password" instructions' do