docbrown/spec/helpers/admin/users_helper_spec.rb
Julianna Tetreault bf67ae2fbb
Refactor Member Index View Tooltips (#17170)
* Adjusts Member Index View tooltips to include resource type

* Adds .compact to the list of resource_types in #format_role_tooltip

* Updates users_helper.rb#format_role_tooltip tests

* right align tooltip

* Update app/views/admin/users/_member_index.html.erb

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>

Co-authored-by: Suzanne Aitchison <suzanne@forem.com>
2022-04-11 09:20:26 -06:00

89 lines
3 KiB
Ruby

require "rails_helper"
describe Admin::UsersHelper do
describe "#format_last_activity_timestamp" do
it "renders the proper 'Last activity' date for a user that was active today" do
timestamp = Time.zone.today
date = timestamp.strftime("%d %b")
formatted_date = helper.format_last_activity_timestamp(timestamp)
expect(formatted_date).to eq "Today, #{date}"
end
it "renders the proper 'Last activity' date for a user that was active yesterday" do
timestamp = Date.yesterday
date = timestamp.strftime("%d %b")
formatted_date = helper.format_last_activity_timestamp(timestamp)
expect(formatted_date).to eq "Yesterday, #{date}"
end
it "renders the proper 'Last activity' date for a user that was active recently" do
timestamp = 11.days.ago
date = timestamp.strftime("%d %b, %Y")
formatted_date = helper.format_last_activity_timestamp(timestamp)
expect(formatted_date).to eq date.to_s
end
end
describe "#cascading_high_level_roles" do
let(:user) { create(:user) }
it "renders the proper role for a Super Admin" do
user.add_role(:super_admin)
role = helper.cascading_high_level_roles(user)
expect(role).to eq "Super Admin"
end
it "renders the proper role for an Admin" do
user.add_role(:admin)
role = helper.cascading_high_level_roles(user)
expect(role).to eq "Admin"
end
it "renders the proper role for a Resource Admin" do
user.add_role(:single_resource_admin, Article)
role = helper.cascading_high_level_roles(user)
expect(role).to eq "Resource Admin"
end
it "renders the proper role for a user that isn't a Super Admin, Admin, or Resource Admin" do
user = create(:user)
role = helper.cascading_high_level_roles(user)
expect(role).to be_nil
end
end
describe "#format_role_tooltip" do
let(:user) { create(:user) }
it "renders the proper tooltip for a Super Admin" do
user.add_role(:super_admin)
role = helper.format_role_tooltip(user)
expect(role).to eq "Super Admin"
end
it "renders the proper tooltip for an Admin" do
user.add_role(:admin)
role = helper.format_role_tooltip(user)
expect(role).to eq "Admin"
end
it "renders the proper tooltip for a Resource Admin" do
user.add_role(:single_resource_admin, Article)
role = helper.format_role_tooltip(user)
expect(role).to eq "Resource Admin: Article"
end
it "renders the proper, comma-separated tooltip for a Resource Admin with multiple resource_types" do
user.add_role(:single_resource_admin, Article)
user.add_role(:single_resource_admin, Badge)
role = helper.format_role_tooltip(user)
expect(role).to eq "Resource Admin: Article, Badge"
end
it "does not render a the resource_type for a Trusted user" do
user.add_role(:trusted)
role = helper.format_role_tooltip(user)
expect(role).to be_nil
end
end
end