X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/66c13b6055a363cb08197b8c5d040ed9a511c8ca..d3229c7f727f40436cad66fba5f3345e0b3eede5:/apps/workbench/test/unit/pipeline_instance_test.rb diff --git a/apps/workbench/test/unit/pipeline_instance_test.rb b/apps/workbench/test/unit/pipeline_instance_test.rb index 95ad8fa7cd..4cad6e64b6 100644 --- a/apps/workbench/test/unit/pipeline_instance_test.rb +++ b/apps/workbench/test/unit/pipeline_instance_test.rb @@ -1,31 +1,49 @@ require 'test_helper' class PipelineInstanceTest < ActiveSupport::TestCase + def attribute_editable_for?(token_name, pi_name, attr_name, ever=nil) + use_token token_name + find_fixture(PipelineInstance, pi_name).attribute_editable?(attr_name, ever) + end + test "admin can edit name" do - use_token :admin - assert(find_fixture(PipelineInstance, "new_pipeline_in_subproject") - .attribute_editable?("name"), + assert(attribute_editable_for?(:admin, "new_pipeline_in_subproject", + "name"), "admin not allowed to edit pipeline instance name") end test "project owner can edit name" do - use_token :active - assert(find_fixture(PipelineInstance, "new_pipeline_in_subproject") - .attribute_editable?("name"), + assert(attribute_editable_for?(:active, "new_pipeline_in_subproject", + "name"), "project owner not allowed to edit pipeline instance name") end test "project admin can edit name" do - use_token :subproject_admin - assert(find_fixture(PipelineInstance, "new_pipeline_in_subproject") - .attribute_editable?("name"), + assert(attribute_editable_for?(:subproject_admin, + "new_pipeline_in_subproject", "name"), "project admin not allowed to edit pipeline instance name") end test "project viewer cannot edit name" do - use_token :project_viewer - refute(find_fixture(PipelineInstance, "new_pipeline_in_subproject") - .attribute_editable?("name"), + refute(attribute_editable_for?(:project_viewer, + "new_pipeline_in_subproject", "name"), "project viewer allowed to edit pipeline instance name") end + + test "name editable on completed pipeline" do + assert(attribute_editable_for?(:active, "has_component_with_completed_jobs", + "name"), + "name not editable on complete pipeline") + end + + test "components editable on new pipeline" do + assert(attribute_editable_for?(:active, "new_pipeline", "components"), + "components not editable on new pipeline") + end + + test "components not editable on completed pipeline" do + refute(attribute_editable_for?(:active, "has_component_with_completed_jobs", + "components"), + "components not editable on new pipeline") + end end