From 4aa600387e71bca60331d672dc5c15ba58886006 Mon Sep 17 00:00:00 2001 From: Matt Jankowski Date: Thu, 12 Sep 2024 09:31:50 -0400 Subject: [PATCH] Move redirect/base body class to view (#31796) --- app/controllers/redirect/base_controller.rb | 5 --- app/views/redirects/show.html.haml | 2 ++ spec/system/redirections_spec.rb | 38 ++++++++++++--------- 3 files changed, 23 insertions(+), 22 deletions(-) diff --git a/app/controllers/redirect/base_controller.rb b/app/controllers/redirect/base_controller.rb index 90894ec1e..34558a412 100644 --- a/app/controllers/redirect/base_controller.rb +++ b/app/controllers/redirect/base_controller.rb @@ -4,7 +4,6 @@ class Redirect::BaseController < ApplicationController vary_by 'Accept-Language' before_action :set_resource - before_action :set_app_body_class def show @redirect_path = ActivityPub::TagManager.instance.url_for(@resource) @@ -14,10 +13,6 @@ class Redirect::BaseController < ApplicationController private - def set_app_body_class - @body_classes = 'app-body' - end - def set_resource raise NotImplementedError end diff --git a/app/views/redirects/show.html.haml b/app/views/redirects/show.html.haml index 64436e05d..aa0db350a 100644 --- a/app/views/redirects/show.html.haml +++ b/app/views/redirects/show.html.haml @@ -2,6 +2,8 @@ %meta{ name: 'robots', content: 'noindex, noarchive' }/ %link{ rel: 'canonical', href: @redirect_path } +- content_for :body_classes, 'app-body' + .redirect .redirect__logo = link_to render_logo, root_path diff --git a/spec/system/redirections_spec.rb b/spec/system/redirections_spec.rb index 860bbdd6b..eba034326 100644 --- a/spec/system/redirections_spec.rb +++ b/spec/system/redirections_spec.rb @@ -6,27 +6,31 @@ RSpec.describe 'redirection confirmations' do let(:account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/users/foo', url: 'https://example.com/@foo') } let(:status) { Fabricate(:status, account: account, uri: 'https://example.com/users/foo/statuses/1', url: 'https://example.com/@foo/1') } - context 'when a logged out user visits a local page for a remote account' do - it 'shows a confirmation page' do - visit "/@#{account.pretty_acct}" + context 'when logged out' do + describe 'a local page for a remote account' do + it 'shows a confirmation page with relevant content' do + visit "/@#{account.pretty_acct}" - # It explains about the redirect - expect(page).to have_content(I18n.t('redirects.title', instance: 'cb6e6126.ngrok.io')) + expect(page) + .to have_content(redirect_title) # Redirect explanation + .and have_link(account.url, href: account.url) # Appropriate account link + .and have_css('body', class: 'app-body') + end + end - # It features an appropriate link - expect(page).to have_link(account.url, href: account.url) + describe 'a local page for a remote status' do + it 'shows a confirmation page with relevant content' do + visit "/@#{account.pretty_acct}/#{status.id}" + + expect(page) + .to have_content(redirect_title) # Redirect explanation + .and have_link(status.url, href: status.url) # Appropriate status link + .and have_css('body', class: 'app-body') + end end end - context 'when a logged out user visits a local page for a remote status' do - it 'shows a confirmation page' do - visit "/@#{account.pretty_acct}/#{status.id}" - - # It explains about the redirect - expect(page).to have_content(I18n.t('redirects.title', instance: 'cb6e6126.ngrok.io')) - - # It features an appropriate link - expect(page).to have_link(status.url, href: status.url) - end + def redirect_title + I18n.t('redirects.title', instance: 'cb6e6126.ngrok.io') end end