From 8fb41bf5fbe337f432cae77d04edec9def41f402 Mon Sep 17 00:00:00 2001 From: Arpit Jalan Date: Tue, 11 Apr 2017 19:35:35 +0530 Subject: [PATCH] FIX: update timestamp when resending invite --- app/models/invite.rb | 2 ++ spec/models/invite_spec.rb | 9 ++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/models/invite.rb b/app/models/invite.rb index 15e5fcccc3b..5fd7471f007 100644 --- a/app/models/invite.rb +++ b/app/models/invite.rb @@ -116,6 +116,8 @@ class Invite < ActiveRecord::Base invite = nil end + invite.update_columns(created_at: Time.zone.now, updated_at: Time.zone.now) if invite + if !invite create_args = { invited_by: invited_by, email: lower_email } create_args[:moderator] = true if opts[:moderator] diff --git a/spec/models/invite_spec.rb b/spec/models/invite_spec.rb index b3784aa97b4..0080d9267e0 100644 --- a/spec/models/invite_spec.rb +++ b/spec/models/invite_spec.rb @@ -102,8 +102,15 @@ describe Invite do expect(topic.invite_by_email(inviter, 'ICEKING@adventuretime.ooo')).to eq(@invite) end + it 'updates timestamp of existing invite' do + @invite.created_at = 10.days.ago + @invite.save + resend_invite = topic.invite_by_email(inviter, 'iceking@adventuretime.ooo') + expect(resend_invite.created_at).to be_within(1.minute).of(Time.zone.now) + end + it 'returns a new invite if the other has expired' do - SiteSetting.stubs(:invite_expiry_days).returns(1) + SiteSetting.invite_expiry_days = 1 @invite.created_at = 2.days.ago @invite.save new_invite = topic.invite_by_email(inviter, 'iceking@adventuretime.ooo')