@@ -1869,11 +1869,21 @@ def test_update_bad_attributes
18691869 assert_response :bad_request
18701870 end
18711871
1872- def test_delete_with_validation_error
1872+ def test_delete_with_validation_error_base
18731873 post = Post . create! ( title : "can't destroy me" , author : Person . first )
18741874 delete :destroy , params : { id : post . id }
18751875
18761876 assert_equal "can't destroy me" , json_response [ 'errors' ] [ 0 ] [ 'title' ]
1877+ assert_equal "/data" , json_response [ 'errors' ] [ 0 ] [ 'source' ] [ 'pointer' ]
1878+ assert_response :unprocessable_entity
1879+ end
1880+
1881+ def test_delete_with_validation_error_attr
1882+ post = Post . create! ( title : "locked title" , author : Person . first )
1883+ delete :destroy , params : { id : post . id }
1884+
1885+ assert_equal "is locked" , json_response [ 'errors' ] [ 0 ] [ 'title' ]
1886+ assert_equal "/data/attributes/title" , json_response [ 'errors' ] [ 0 ] [ 'source' ] [ 'pointer' ]
18771887 assert_response :unprocessable_entity
18781888 end
18791889
@@ -3755,6 +3765,15 @@ def test_caching_with_join_from_resource_with_sql_fragment
37553765 assert_cacheable_get :index , params : { include : 'section' }
37563766 assert_response :success
37573767 end
3768+
3769+ def test_delete_with_validation_error_base_on_resource
3770+ post = Post . create! ( title : "can't destroy me either" , author : Person . first )
3771+ delete :destroy , params : { id : post . id }
3772+
3773+ assert_equal "can't destroy me" , json_response [ 'errors' ] [ 0 ] [ 'title' ]
3774+ assert_equal "/data/attributes/base" , json_response [ 'errors' ] [ 0 ] [ 'source' ] [ 'pointer' ]
3775+ assert_response :unprocessable_entity
3776+ end
37583777end
37593778
37603779class Api ::V6 ::SectionsControllerTest < ActionController ::TestCase
0 commit comments