From fb0856458b1e3e0a5960b62ed64551b136dfd9e7 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Wed, 12 Feb 2025 09:24:17 -0500 Subject: [PATCH] Verify page content in `ChallengableConcern` spec (#33895) --- .../concerns/challengable_concern_spec.rb | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/spec/controllers/concerns/challengable_concern_spec.rb b/spec/controllers/concerns/challengable_concern_spec.rb index 01f979ff4..823003c8d 100644 --- a/spec/controllers/concerns/challengable_concern_spec.rb +++ b/spec/controllers/concerns/challengable_concern_spec.rb @@ -3,6 +3,8 @@ require 'rails_helper' RSpec.describe ChallengableConcern do + render_views + controller(ApplicationController) do include ChallengableConcern # rubocop:disable RSpec/DescribedClass @@ -85,29 +87,35 @@ RSpec.describe ChallengableConcern do before { get :foo } it 'renders challenge' do - expect(response).to render_template('auth/challenges/new', layout: :auth) + expect(response.parsed_body) + .to have_title(I18n.t('challenge.prompt')) end - - # See Auth::ChallengesControllerSpec end context 'with POST requests' do before { post :bar } it 'renders challenge' do - expect(response).to render_template('auth/challenges/new', layout: :auth) + expect(response.parsed_body) + .to have_title(I18n.t('challenge.prompt')) end it 'accepts correct password' do post :bar, params: { form_challenge: { current_password: password } } - expect(response.body).to eq 'bar' - expect(session[:challenge_passed_at]).to_not be_nil + + expect(response.body) + .to eq 'bar' + expect(session[:challenge_passed_at]) + .to_not be_nil end it 'rejects wrong password' do post :bar, params: { form_challenge: { current_password: 'dddfff888123' } } - expect(response.body).to render_template('auth/challenges/new', layout: :auth) - expect(session[:challenge_passed_at]).to be_nil + + expect(response.parsed_body) + .to have_title(I18n.t('challenge.prompt')) + expect(session[:challenge_passed_at]) + .to be_nil end end end