bug: resolve false positive "oops" redirect
This commit is contained in:
parent
76e7401cec
commit
49035929fb
@ -45,6 +45,7 @@ class CandidateController < ApplicationController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def send_to_oops
|
def send_to_oops
|
||||||
|
redirect_to welcome_path and return if current_candidate && current_candidate.stale?
|
||||||
redirect_to oops_path if current_candidate
|
redirect_to oops_path if current_candidate
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -48,6 +48,17 @@ class Candidate < ApplicationRecord
|
|||||||
answers.where(submitted: true)
|
answers.where(submitted: true)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def last_answered_at
|
||||||
|
return Time.current unless submitted_answers.count.positive?
|
||||||
|
submitted_answers.order(updated_at: :desc).first.updated_at
|
||||||
|
end
|
||||||
|
|
||||||
|
def stale?
|
||||||
|
return true unless answers.count.positive?
|
||||||
|
minutes_since_answered = (Time.current.minus_with_coercion(last_answered_at) / 60).round
|
||||||
|
minutes_since_answered > 45
|
||||||
|
end
|
||||||
|
|
||||||
def answered_questions
|
def answered_questions
|
||||||
answers.where.not(answer: nil)
|
answers.where.not(answer: nil)
|
||||||
.where("answers.answer not like '%later:%'")
|
.where("answers.answer not like '%later:%'")
|
||||||
|
@ -34,4 +34,23 @@ class CandidateTest < ActiveSupport::TestCase
|
|||||||
candidate.build_reviews
|
candidate.build_reviews
|
||||||
assert_equal 3, candidate.votes.count
|
assert_equal 3, candidate.votes.count
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test 'can get last answer timestamp' do
|
||||||
|
candidate = candidates(:roy)
|
||||||
|
roy_last = answers(:roy2).updated_at
|
||||||
|
|
||||||
|
assert_equal roy_last, candidate.last_answered_at
|
||||||
|
end
|
||||||
|
|
||||||
|
test 'gillian is stale with no answers' do
|
||||||
|
candidate = candidates(:gillian)
|
||||||
|
|
||||||
|
assert candidate.stale?
|
||||||
|
end
|
||||||
|
|
||||||
|
test 'roy is stale with answers' do
|
||||||
|
candidate = candidates(:roy)
|
||||||
|
|
||||||
|
assert candidate.stale?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user