mirror of
https://github.com/Retrospring/retrospring.git
synced 2024-11-20 14:19:53 +01:00
110 lines
4.3 KiB
Ruby
110 lines
4.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
require "rails_helper"
|
|
|
|
describe BootstrapHelper, type: :helper do
|
|
include ActiveSupport::Testing::TimeHelpers
|
|
|
|
describe "#nav_entry" do
|
|
it "should return a HTML navigation item which links to a given address" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(nav_entry("Example", "/example")).to(
|
|
eq('<li class="nav-item "><a class="nav-link" href="/example">Example</a></li>'),
|
|
)
|
|
end
|
|
|
|
it "should return with an active attribute if the link matches the current URL" do
|
|
allow(self).to receive(:current_page?).and_return(true)
|
|
expect(nav_entry("Example", "/example")).to(
|
|
eq('<li class="nav-item active "><a class="nav-link" href="/example">Example</a></li>'),
|
|
)
|
|
end
|
|
|
|
it "should include an icon if given" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(nav_entry("Example", "/example", icon: "beaker")).to(
|
|
eq('<li class="nav-item "><a class="nav-link" href="/example"><i class="fa fa-beaker"></i> Example</a></li>'),
|
|
)
|
|
end
|
|
|
|
it "should only include an icon if wanted" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(nav_entry("Example", "/example", icon: "beaker", icon_only: true)).to(
|
|
eq('<li class="nav-item "><a class="nav-link" href="/example"><i class="fa fa-beaker" title="Example"></i></a></li>'),
|
|
)
|
|
end
|
|
|
|
it "should include a badge if given" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(nav_entry("Example", "/example", badge: 3)).to(
|
|
eq('<li class="nav-item "><a class="nav-link" href="/example">Example <span class="badge">3</span></a></li>'),
|
|
)
|
|
|
|
expect(nav_entry("Example", "/example", badge: 3, badge_color: "primary", badge_pill: true)).to(
|
|
eq('<li class="nav-item "><a class="nav-link" href="/example">Example <span class="badge badge-primary badge-pill">3</span></a></li>'),
|
|
)
|
|
end
|
|
|
|
it "should put an ID on the entry an id if given" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(nav_entry("Example", "/example", id: "testing")).to(
|
|
eq("<li class=\"nav-item \" id=\"testing\"><a class=\"nav-link\" href=\"/example\">Example</a></li>"),
|
|
)
|
|
end
|
|
end
|
|
|
|
describe "#list_group_item" do
|
|
it "should return a HTML navigation item which links to a given address" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(list_group_item("Example", "/example")).to(
|
|
eq('<a href="/example" class="list-group-item list-group-item-action ">Example</a>'),
|
|
)
|
|
end
|
|
|
|
it "should return with an active attribute if the link matches the current URL" do
|
|
allow(self).to receive(:current_page?).and_return(true)
|
|
expect(list_group_item("Example", "/example")).to(
|
|
eq('<a href="/example" class="list-group-item list-group-item-action active ">Example</a>'),
|
|
)
|
|
end
|
|
|
|
it "should include a badge if given" do
|
|
allow(self).to receive(:current_page?).and_return(false)
|
|
expect(list_group_item("Example", "/example", badge: 3)).to(
|
|
eq('<a href="/example" class="list-group-item list-group-item-action ">Example <span class="badge">3</span></a>'),
|
|
)
|
|
end
|
|
end
|
|
|
|
describe "#bootstrap_color" do
|
|
it "should map error and alert to danger" do
|
|
expect(bootstrap_color("error")).to eq("danger")
|
|
expect(bootstrap_color("alert")).to eq("danger")
|
|
end
|
|
|
|
it "should map notice to info" do
|
|
expect(bootstrap_color("notice")).to eq("info")
|
|
end
|
|
|
|
it "should return any uncovered value" do
|
|
expect(bootstrap_color("success")).to eq("success")
|
|
end
|
|
end
|
|
|
|
describe "#tooltip" do
|
|
it "should return the proper markup" do
|
|
expect(tooltip("Example Text", "This is in a tooltip")).to eq("<span title=\"This is in a tooltip\" data-controller=\"tooltip\" data-bs-placement=\"bottom\">Example Text</span>")
|
|
end
|
|
end
|
|
|
|
describe "#time_tooltip" do
|
|
it "should return a tooltip with proper time values" do
|
|
travel_to(Time.utc(1984)) do
|
|
@user = FactoryBot.create(:user)
|
|
travel 10.minutes
|
|
|
|
expect(time_tooltip(@user)).to eq("<span title=\"January 01, 1984 00:00\" data-controller=\"tooltip\" data-bs-placement=\"bottom\">10m</span>")
|
|
end
|
|
end
|
|
end
|
|
end
|