refactor: use last_sign_in_at as confirmed_at is not reliable

This commit is contained in:
simon lehericey 2024-04-16 16:16:05 +02:00
parent d95ce505a8
commit 981003975c
No known key found for this signature in database
GPG key ID: CDE670D827C7B3C5
2 changed files with 8 additions and 8 deletions

View file

@ -35,7 +35,7 @@ class Expert < ApplicationRecord
.where(experts_procedures: { procedure: procedure })
new_or_confirmed_experts = procedure_experts
.where.not(users: { confirmed_at: nil })
.where.not(users: { last_sign_in_at: nil })
.or(procedure_experts.where(users: { created_at: 1.day.ago.. }))
suggested_expert = if procedure.experts_require_administrateur_invitation?

View file

@ -101,20 +101,20 @@ RSpec.describe Expert, type: :model do
let(:procedure) { create(:procedure, experts_require_administrateur_invitation: true) }
let(:expert) { create(:expert) }
let(:revoked_expert) { create(:expert) }
let(:unconfirmed_expert) { create(:expert) }
let(:new_unconfirmed_expert) { create(:expert) }
let(:unsigned_expert) { create(:expert) }
let(:new_unsigned_expert) { create(:expert) }
before do
procedure.experts << expert << revoked_expert << unconfirmed_expert << new_unconfirmed_expert
procedure.experts << expert << revoked_expert << unsigned_expert << new_unsigned_expert
ExpertsProcedure.find_by(expert: revoked_expert, procedure: procedure)
.update!(revoked_at: 1.day.ago)
unconfirmed_expert.user.update!(confirmed_at: nil, created_at: 2.days.ago)
new_unconfirmed_expert.user.update!(confirmed_at: nil)
unsigned_expert.user.update!(last_sign_in_at: nil, created_at: 2.days.ago)
new_unsigned_expert.user.update!(last_sign_in_at: nil)
end
context 'when procedure experts need administrateur invitation' do
it 'returns only confirmed not revoked experts' do
expect(subject).to eq([expert.user.email, new_unconfirmed_expert.user.email])
expect(subject).to eq([expert.user.email, new_unsigned_expert.user.email].sort)
end
end
@ -122,7 +122,7 @@ RSpec.describe Expert, type: :model do
let(:procedure) { create(:procedure, experts_require_administrateur_invitation: false) }
it 'prefill autocomplete with all confirmed experts in the procedure' do
expect(subject).to eq([expert.user.email, revoked_expert.user.email, new_unconfirmed_expert.user.email])
expect(subject).to eq([expert.user.email, revoked_expert.user.email, new_unsigned_expert.user.email].sort)
end
end
end