diff --git a/Changelog.md b/Changelog.md index 90121c0c2eb596bb51b57667cc56723fa0dc1140..f0d6bc74035fff66990ef00688940db9f6cd679c 100644 --- a/Changelog.md +++ b/Changelog.md @@ -6,6 +6,7 @@ * Redirect to sign in page when a background request fails with 401 [#6496](https://github.com/diaspora/diaspora/pull/6496) * Correctly skip setting sidekiq logfile on Heroku [#6500](https://github.com/diaspora/diaspora/pull/6500) * Fix notifications for interactions by non-contacts [#6498](https://github.com/diaspora/diaspora/pull/6498) +* Fix issue where the publisher was broken on profile pages [#6503](https://github.com/diaspora/diaspora/pull/6503) ## Features diff --git a/app/views/people/show.html.haml b/app/views/people/show.html.haml index 235c22ccc36f005a2689d0e82b0e50db44fa6f1d..e368449d2747f0e2d7ef60b78f6ddd8c7227fa00 100644 --- a/app/views/people/show.html.haml +++ b/app/views/people/show.html.haml @@ -23,7 +23,7 @@ .stream_container - -if user_signed_in? && current_page?(person_path(current_user.person)) + - if user_signed_in? && current_user.person == @person = render 'publisher/publisher', publisher_aspects_for(nil) #main_stream.stream diff --git a/spec/integration/profile_spec.rb b/spec/integration/profile_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..3428c11d1055d1784e9af8994da07a0e4b2a75aa --- /dev/null +++ b/spec/integration/profile_spec.rb @@ -0,0 +1,72 @@ +require "spec_helper" +require "requests_helper" + +describe PeopleController, type: :request do + context "for the current user" do + before do + login alice + end + + it "displays the publisher for user profile path" do + get "/u/#{alice.username}" + + expect(response.status).to eq(200) + # make sure we are signed in + expect(response.body).not_to match(/a class="login"/) + expect(response.body).to match(/div id='publisher_textarea_wrapper'/) + end + + it "displays the publisher for people path" do + get "/people/#{alice.person.guid}" + + expect(response.status).to eq(200) + # make sure we are signed in + expect(response.body).not_to match(/a class="login"/) + expect(response.body).to match(/div id='publisher_textarea_wrapper'/) + end + end + + context "for another user" do + before do + login bob + end + + it "doesn't display the publisher for user profile path" do + get "/u/#{alice.username}" + + expect(response.status).to eq(200) + # make sure we are signed in + expect(response.body).not_to match(/a class="login"/) + expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/) + end + + it "doesn't display the publisher for people path" do + get "/people/#{alice.person.guid}" + + expect(response.status).to eq(200) + # make sure we are signed in + expect(response.body).not_to match(/a class="login"/) + expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/) + end + end + + context "with no user signed in" do + it "doesn't display the publisher for user profile path" do + get "/u/#{alice.username}" + + expect(response.status).to eq(200) + # make sure we aren't signed in + expect(response.body).to match(/a class="login"/) + expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/) + end + + it "doesn't display the publisher for people path" do + get "/people/#{alice.person.guid}" + + expect(response.status).to eq(200) + # make sure we aren't signed in + expect(response.body).to match(/a class="login"/) + expect(response.body).not_to match(/div id='publisher_textarea_wrapper'/) + end + end +end diff --git a/spec/requests_helper.rb b/spec/requests_helper.rb new file mode 100644 index 0000000000000000000000000000000000000000..fdae9a95da530103e43a1c054db2a268fc9a64fe --- /dev/null +++ b/spec/requests_helper.rb @@ -0,0 +1,5 @@ +include Warden::Test::Helpers + +def login(user) + login_as user, scope: :user +end