From 6712bf86cd291e9db5530400e47ba5f2b6894a9c Mon Sep 17 00:00:00 2001 From: Renaud Chaput Date: Sat, 4 Nov 2023 22:52:56 +0100 Subject: [PATCH] Fixes website not loading for unlogged users (#27698) --- app/javascript/mastodon/reducers/accounts.ts | 24 +++++++++++--------- spec/system/unlogged_spec.rb | 17 ++++++++++++++ 2 files changed, 30 insertions(+), 11 deletions(-) create mode 100644 spec/system/unlogged_spec.rb diff --git a/app/javascript/mastodon/reducers/accounts.ts b/app/javascript/mastodon/reducers/accounts.ts index 4a00f21f31..f7270eb60a 100644 --- a/app/javascript/mastodon/reducers/accounts.ts +++ b/app/javascript/mastodon/reducers/accounts.ts @@ -41,32 +41,34 @@ const normalizeAccounts = ( return state; }; -export const accountsReducer: Reducer = ( - state = initialState, - action, -) => { - const currentUserId = me; - - if (!currentUserId) +function getCurrentUser() { + if (!me) throw new Error( 'No current user (me) defined when calling `accountsReducer`', ); + return me; +} + +export const accountsReducer: Reducer = ( + state = initialState, + action, +) => { if (revealAccount.match(action)) return state.setIn([action.payload.id, 'hidden'], false); else if (importAccounts.match(action)) return normalizeAccounts(state, action.payload.accounts); - else if (followAccountSuccess.match(action)) + else if (followAccountSuccess.match(action)) { return state .update( action.payload.relationship.id, (account) => account?.update('followers_count', (n) => n + 1), ) .update( - currentUserId, + getCurrentUser(), (account) => account?.update('following_count', (n) => n + 1), ); - else if (unfollowAccountSuccess.match(action)) + } else if (unfollowAccountSuccess.match(action)) return state .update( action.payload.relationship.id, @@ -74,7 +76,7 @@ export const accountsReducer: Reducer = ( account?.update('followers_count', (n) => Math.max(0, n - 1)), ) .update( - currentUserId, + getCurrentUser(), (account) => account?.update('following_count', (n) => Math.max(0, n - 1)), ); diff --git a/spec/system/unlogged_spec.rb b/spec/system/unlogged_spec.rb new file mode 100644 index 0000000000..c3ebf51d7f --- /dev/null +++ b/spec/system/unlogged_spec.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +require 'rails_helper' + +describe 'UnloggedBrowsing' do + subject { page } + + before do + visit root_path + end + + it 'loads the home page' do + expect(subject).to have_css('div.app-holder') + + expect(subject).to have_css('div.columns-area__panels__main') + end +end