Rails 6 ActiveStorage - тест fixture_file_upload () не разрешен в параметрах - PullRequest
1 голос
/ 23 января 2020

Я пытаюсь проверить мой контроллер с загрузкой изображения, но в моем интеграционном тесте параметр никогда не разрешается. Что-то я делаю не так? Я использую последнюю версию Rails 6.0.2.1. Ниже мой тест и что у меня есть в контроллере.

Тест

test "should return error" do
  image = fixture_file_upload(file_fixture('avatar.jpg'), 'image/jpg')
  put organisation_images_path(@organiser), 
      params: { organiser: { avatar: image } },
      as: :json

  assert_response :success
end

Контроллер

def update
  if @organiser.update(org_params)
    render json: {url: url_for(@organiser.avatar)}
  else
    render json: {errors: @organiser.errors.full_messages}, status: :unprocessable_entity
  end
end

private
def org_params
  params.require(:organiser).permit(:avatar)
end

Параметры

<ActionController::Parameters {"organiser"=><ActionController::Parameters {"avatar"=><ActionController::Parameters {"original_filename"=>"avatar.jpg", "tempfile"=>"#<File:0x00007f8469065b40>", "content_type"=>"image/jpg"} permitted: false>} permitted: false>, "controller"=>"resources/images", "action"=>"update", "organisation_id"=>"123", "image"=>{"organiser"=>{"cover"=>{"original_filename"=>"avatar.jpg", "tempfile"=>"#<File:0x00007f8469065b40>", "content_type"=>"image/jpg"}}}} permitted: false>

Как видите, параметр avatar не разрешен, и это происходит после того, как я впервые позвонил org_params.

...