Как я могу проверить ожидаемый ответ 404 на частной странице ресурса из производства? - PullRequest
0 голосов
/ 10 ноября 2018

У меня есть приложение, в котором пользователи являются авторами объектов под названием «Связующие».Это частный ресурс, где один пользователь не должен иметь возможность просматривать подшивку другого пользователя, если он не используется совместно.Я хотел бы, чтобы мое приложение 404 всякий раз, когда пользователь пытается сделать такую ​​вещь.Вот что я пробовал до сих пор.

class BindersController < ApplicationController
  before_action :authenticate_user!
  before_action :set_user, only: [:show, :edit, :update, :destroy]
  before_action :authenticate_access, only: [:show, :edit, :update, :destroy]

  # ...

  private
    def authenticate_access
      if current_user != @binder.user
        respond_to do |format|
          format.html { head :missing }
          format.json { head :missing }
        end
      end
    end
end

Моя проблема в том, что Rails предпочитает 500 в разработке и тестировании.Это делает невозможным проверку с помощью теста, подобного следующему.

class BindersControllerTest < ActionDispatch::IntegrationTest
  include Warden::Test::Helpers

  setup do
    @alices_binder = binders(:alices_binder)
    @alice = users(:alice)
    @eve = users(:eve)
  end

  teardown do
    Warden.test_reset!
  end

  test 'binders#show should be missing if accessed by wrong user'
    login_as @eve, scope: :user
    get binder_url(@alices_binder)
    assert_response :missing
  end
end

Как правильно проверить это поведение в процессе производства?

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