skill-assessment-app/test/workers/quiz_status_test.rb
2017-01-12 18:39:12 -06:00

117 lines
2.3 KiB
Ruby

# frozen_string_literal: true
require 'test_helper'
class QuizStatusTest < ActiveSupport::TestCase
test "roy has started test" do
roy = candidates :roy
status = QuizStatus.new roy
assert status.started
end
test "martha has NOT started test" do
martha = candidates :martha
status = QuizStatus.new martha
refute status.started
end
test "dawn is on summary page" do
dawn = candidates :dawn
status = QuizStatus.new dawn
assert status.on_summary
end
test "roy is NOT on summary" do
roy = candidates :roy
status = QuizStatus.new roy
refute status.on_summary
end
test "roy has NOT submitted" do
roy = candidates :roy
status = QuizStatus.new roy
refute status.completed
end
test "richard is complete" do
richard = candidates :richard
status = QuizStatus.new richard
assert status.completed
end
test "dawn can NOT submit" do
dawn = candidates :dawn
status = QuizStatus.new dawn
refute status.can_submit
end
test "richard can submit" do
richard = candidates :richard
status = QuizStatus.new richard
assert status.can_submit
end
test "richard is at 100%" do
richard = candidates :richard
status = QuizStatus.new richard
assert_equal 100, status.progress
end
test "roy is 20% done" do
roy = candidates :roy
status = QuizStatus.new roy
assert_equal 20, status.progress
end
test "martha is 0% done" do
martha = candidates :martha
status = QuizStatus.new martha
assert_equal 0, status.progress
end
test "roy is on question 3" do
roy = candidates :roy
status = QuizStatus.new roy
assert_equal questions(:fed3).id, status.current_question_id
end
test "martha is on question 1" do
martha = candidates :martha
status = QuizStatus.new martha
assert_equal questions(:fed1).id, status.current_question_id
end
test "dawn is on summary" do
dawn = candidates :dawn
status = QuizStatus.new dawn
assert_nil status.current_question_id
end
test "richard has no_finish_laters" do
richard = candidates :richard
status = QuizStatus.new richard
assert status.no_finish_later
end
test "juan has some finish_laters" do
juan = candidates :juan
status = QuizStatus.new juan
refute status.no_finish_later
end
end