require "rails_helper" RSpec.describe TabNavHelper do let(:organisation) { FactoryBot.create(:organisation) } let(:user) { FactoryBot.build(:user, organisation:) } let(:scheme) { FactoryBot.create(:scheme, service_name: "Some name") } let(:location) { FactoryBot.create(:location, scheme:) } describe "#user_cell" do it "returns user link and email separated by a newline character" do expected_html = "#{user.name}\nUser #{user.email}" expect(user_cell(user)).to match(expected_html) end end describe "#org_cell" do it "returns the users org name and role separated by a newline character" do expected_html = "DLUHC\nData provider" expect(org_cell(user)).to match(expected_html) end end describe "#location_cell" do it "returns the location link to the postcode with optional name" do link = "/schemes/#{location.scheme.id}/locations/#{location.id}/edit" expected_html = "#{location.postcode}\nLocation #{location.name}" expect(location_cell_postcode(location, link)).to match(expected_html) end end describe "#scheme_cell" do it "returns the scheme link service name and primary user group separated by a newline character" do expected_html = "#{scheme.service_name}\nScheme #{scheme.primary_client_group}" expect(scheme_cell(scheme)).to match(expected_html) end end describe "#tab_items" do context "when user is a data_coordinator" do let(:user) { FactoryBot.build(:user, :data_coordinator, organisation:) } it "returns details and user tabs" do result = tab_items(user).map { |i| i[:name] } expect(result.count).to eq(2) expect(result.first).to match("Details") expect(result.second).to match("Users") end end context "when user is a data_provider" do it "returns details and user tabs" do result = tab_items(user).map { |i| i[:name] } expect(result.count).to eq(2) expect(result.first).to match("Details") expect(result.second).to match("Users") end end end end