diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 300b7e55d..fc37d1635 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1,7 +1,9 @@ module ApplicationHelper def page_title_tag - account_name = ApplicationRecord.current_tenant && Current.user&.identity&.memberships&.many? && Account.sole&.name - tag.title [ @page_title, account_name, "Fizzy" || "Fizzy" ].compact.join(" | ") + account_name = if ApplicationRecord.current_tenant && Current.session&.identity&.memberships&.many? + Account.sole&.name + end + tag.title [ @page_title, account_name, "Fizzy" ].compact.join(" | ") end def icon_tag(name, **options) diff --git a/test/helpers/application_helper_test.rb b/test/helpers/application_helper_test.rb new file mode 100644 index 000000000..fc48e48a1 --- /dev/null +++ b/test/helpers/application_helper_test.rb @@ -0,0 +1,49 @@ +require "test_helper" + +class ApplicationHelperTest < ActionView::TestCase + def parse(html) + Nokogiri::HTML::DocumentFragment.parse(html) + end + + test "page_title_tag on untenanted page" do + ApplicationRecord.without_tenant do + assert_select parse(page_title_tag), "title", text: "Fizzy" + end + end + + test "page_title_tag on untenanted page with a page title" do + @page_title = "Holodeck" + + ApplicationRecord.without_tenant do + assert_select parse(page_title_tag), "title", text: "Holodeck | Fizzy" + end + end + + test "page_title_tag on tenanted page when user has a single membership" do + Current.session = sessions(:david) + + assert_select parse(page_title_tag), "title", text: "Fizzy" + end + + test "page_title_tag on tenanted page when user has multiple memberships" do + Current.session = sessions(:david) + identities(:david).memberships.create!(tenant: "dangling-tenant") + + assert_select parse(page_title_tag), "title", text: "37signals | Fizzy" + end + + test "page_title_tag on tenanted page with a page title when user has a single membership" do + Current.session = sessions(:david) + @page_title = "Holodeck" + + assert_select parse(page_title_tag), "title", text: "Holodeck | Fizzy" + end + + test "page_title_tag on tenanted page with a page title when user has multiple memberships" do + Current.session = sessions(:david) + identities(:david).memberships.create!(tenant: "dangling-tenant") + @page_title = "Holodeck" + + assert_select parse(page_title_tag), "title", text: "Holodeck | 37signals | Fizzy" + end +end