X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/b0d7f37097e8b5c56bfbfa79a134a8074789ebb4..07aa5aa282a388fc1bcb3d0cfe7520b96b3e7e38:/services/api/test/unit/collection_test.rb diff --git a/services/api/test/unit/collection_test.rb b/services/api/test/unit/collection_test.rb index 9c4c75854e..d425bc63c0 100644 --- a/services/api/test/unit/collection_test.rb +++ b/services/api/test/unit/collection_test.rb @@ -226,12 +226,30 @@ class CollectionTest < ActiveSupport::TestCase c = collections(:collection_owned_by_active) c.update_attributes storage_classes_desired: ["hot"] assert_equal ["hot"], c.storage_classes_desired - assert_raise ArvadosModel::PermissionDeniedError do + assert_raise ArvadosModel::InvalidStateTransitionError do c.update_attributes storage_classes_desired: [] end end end + test "storage classes lists should only contain non-empty strings" do + c = collections(:storage_classes_desired_default_unconfirmed) + act_as_user users(:admin) do + assert c.update_attributes(storage_classes_desired: ["default", "a_string"], + storage_classes_confirmed: ["another_string"]) + [ + ["storage_classes_desired", ["default", 42]], + ["storage_classes_confirmed", [{the_answer: 42}]], + ["storage_classes_desired", ["default", ""]], + ["storage_classes_confirmed", [""]], + ].each do |attr, val| + assert_raise ArvadosModel::InvalidStateTransitionError do + assert c.update_attributes({attr => val}) + end + end + end + end + test "storage_classes_confirmed* can be set by admin user" do c = collections(:storage_classes_desired_default_unconfirmed) act_as_user users(:admin) do