You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
123 lines
4.0 KiB
123 lines
4.0 KiB
2 years ago
|
require "rails_helper"
|
||
|
|
||
|
RSpec.describe TitleHelper do
|
||
|
describe "#format_label" do
|
||
|
let(:item) { "organisation" }
|
||
|
|
||
|
it "returns singular when count is 1" do
|
||
|
expect(format_label(1, item)).to eq("organisation")
|
||
|
end
|
||
|
|
||
|
it "returns plural when count greater than 1" do
|
||
|
expect(format_label(2, item)).to eq("organisations")
|
||
|
end
|
||
|
end
|
||
|
|
||
|
describe "#format_title" do
|
||
|
let(:page_title) { "Title" }
|
||
|
let(:item_label) { "label" }
|
||
|
let(:search_item) { nil }
|
||
|
let(:count) { 1 }
|
||
|
let(:organisation_name) { nil }
|
||
|
|
||
|
context "when provider user" do
|
||
|
let(:user) { FactoryBot.create(:user) }
|
||
|
|
||
|
context "when any specific path" do
|
||
|
let(:page_title) { "Users" }
|
||
|
let(:organisation_name) { nil }
|
||
|
|
||
|
context "when search is missing" do
|
||
|
let(:expected_title) { page_title }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
|
||
|
context "when search is present" do
|
||
|
let(:search_item) { "foobar" }
|
||
|
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when coordinator user" do
|
||
|
let(:user) { FactoryBot.create(:user, :data_coordinator) }
|
||
|
|
||
|
context "when any specific path" do
|
||
|
let(:page_title) { "Users" }
|
||
|
let(:organisation_name) { nil }
|
||
|
|
||
|
context "when search is missing" do
|
||
|
let(:expected_title) { page_title }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
|
||
|
context "when search is present" do
|
||
|
let(:search_item) { "foobar" }
|
||
|
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when support user" do
|
||
|
let(:user) { FactoryBot.create(:user, :support) }
|
||
|
|
||
|
context "when no organisation is specified" do
|
||
|
let(:page_title) { "Organisations" }
|
||
|
|
||
|
context "when search is missing" do
|
||
|
let(:expected_title) { page_title }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when search is present" do
|
||
|
let(:search_item) { "foobar" }
|
||
|
let(:expected_title) { "#{page_title} (#{count} #{item_label} matching ‘#{search_item}’)" }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when organisation is specified" do
|
||
|
let(:page_title) { "Organisations" }
|
||
|
let(:organisation_name) { "Some Name" }
|
||
|
|
||
|
context "when search is missing" do
|
||
|
let(:expected_title) { "#{organisation_name} (#{page_title})" }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(nil, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
end
|
||
|
|
||
|
context "when search is present" do
|
||
|
let(:search_item) { "foobar" }
|
||
|
let(:expected_title) { "#{organisation_name} (#{count} #{item_label} matching ‘#{search_item}’)" }
|
||
|
|
||
|
it "returns expected title" do
|
||
|
expect(format_title(search_item, page_title, user, item_label, count, organisation_name)).to eq(expected_title)
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
end
|