X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/3412c35d3da73b94c133099dceab9770fb465165..b3f9cef0402c67cf06f825b283d95ef5819ab93f:/services/api/test/unit/job_test.rb diff --git a/services/api/test/unit/job_test.rb b/services/api/test/unit/job_test.rb index 19b6eb219d..cf1e26c17f 100644 --- a/services/api/test/unit/job_test.rb +++ b/services/api/test/unit/job_test.rb @@ -206,6 +206,27 @@ class JobTest < ActiveSupport::TestCase end end + test "Test job state changes" do + all = ["Queued", "Running", "Complete", "Failed", "Cancelled"] + valid = {"Queued" => all, "Running" => ["Complete", "Failed", "Cancelled"]} + all.each do |start| + all.each do |finish| + if start != finish + job = Job.create! job_attrs(state: start) + assert_equal start, job.state + job.state = finish + job.save + job.reload + if valid[start] and valid[start].include? finish + assert_equal finish, job.state + else + assert_equal start, job.state + end + end + end + end + end + test "Test job locking" do set_user_from_auth :active_trustedclient job = Job.create! job_attrs @@ -246,4 +267,18 @@ class JobTest < ActiveSupport::TestCase assert_equal "Failed", job.state end + test "verify job queue position" do + job1 = Job.create! job_attrs + assert job1.valid?, job1.errors.full_messages.to_s + assert_equal 'Queued', job1.state, "Incorrect job state for newly created job1" + + job2 = Job.create! job_attrs + assert job2.valid?, job2.errors.full_messages.to_s + assert_equal 'Queued', job2.state, "Incorrect job state for newly created job2" + + assert_not_nil job1.queue_position, "Expected non-nil queue position for job1" + assert_not_nil job2.queue_position, "Expected non-nil queue position for job2" + assert_not_equal job1.queue_position, job2.queue_position + end + end