file_fixture_upload всегда передает объект File как строку в rspe c rails 6 - PullRequest
1 голос
/ 22 января 2020

Я пытаюсь загрузить файл в rspe c и использовать этот файл в моем контроллере. Все работало нормально в Rails 4, но теперь в Rails 6, Rack :: Test :: UploadedFile ha sh при получении в контроллер, мой файл tempfile представляет собой строковый объект File ha sh, который делает невозможным его использование.

describe V1::ApplicationsApiController, type: :request do
  let(:ic_front) { fixture_file_upload(file_fixture("ic_front.jpg")) }
  let(:ic_back) { fixture_file_upload(file_fixture("ic_back.png")) }

  context "Loan Eligibility Check Screening" do
    it "runs background check v1.0.1" do
      payload = {
        "ic_front" => ic_front,
        "ic_back_path" => ic_back,
        "data" => {
          "product_code" => product.code,
          "include" => ["fico"],
          "applicant" => {
            "name" => "Florian Test 1",
            "ic_or_passport_no" => "1234567890",
            "consented_at" => Time.now.iso8601,
          }
        }
      }

      VCR.use_cassette('ic_check_and_ctos') do
        post "/api/v1.0.1/applications/background_check", params: payload, as: :json
        expect(response.status).to eq 200
      end
    end
  end
end

Теперь в моем контроллере я получаю следующее params[:ic_front]

<ActionController::Parameters {"original_filename"=>"ic_front.jpg", "tempfile"=>"#<File:0x0000558457ecd5c0>", "content_type"=>nil} permitted: false>

В моем контроллере я хочу получить params[:ic_front].tempfile.path, чего я не могу потому что tempfile - это строковый файл ha sh.

Я добавил

include ActionDispatch::TestProcess
include Rack::Test::Methods

в мой rails_helper.rb, но не сработал. Я пытался перейти на свои тесты, но также не работал.

Оцените любой новый вклад в этом

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...