Punditで権限を設定して、権限のないユーザーがそのurlを踏むと403エラーを発生させて403.htmlを表示させるように設定しました。

RSpec側でそれをテストさせようとした時にエラーが発生したので対策したこと。

it 'ユーザー一覧画面を表示させようとすると403エラーが発生する' do
	visit admin_users_path
	expect(page).to have_http_status(403)
end

bundle exec rspecで起動させると下のエラーが発生。

Failure/Error: expect(page).to have_http_status(403)
 
	 Capybara::NotSupportedByDriverError:
   Capybara::Driver::Base#status_code

capybaraがサポートしてないっぽい、、?

ググってみると、ドライバーのseleniumではhttpリクエストを拾えないと言う記事があったので、設定側ではseleniumを指定して、このRSpecファイルのみドライバーの設定を変えることに。

before do
	driven_by(:rack_test)
end

エラー解決!!

Finished in 1.59 seconds (files took 7.21 seconds to load)
1 example, 0 failures

あまり意識せずに使っていたドライバー達ですが、知識が深まりました。

Capybaraはテストを実行する環境(ヘッドレスブラウザ)を選択できる。