require "rails_helper" RSpec.describe SearchResultCaptionComponent, type: :component do let(:searched) { "search item" } let(:count) { 2 } let(:item_label) { "user" } let(:total_count) { 3 } let(:item) { "scheme" } let(:filters_count) { 1 } let(:result) { render_inline(described_class.new(searched:, count:, item_label:, total_count:, item:, filters_count:)) } context "when search and filter results are found" do it "renders table caption including the search results and total" do expect(result.to_html).to eq("\n 2 users matching search and filters
\n
\n") end end context "when search results are found" do let(:filters_count) { nil } it "renders table caption including the search results and total" do expect(result.to_html).to eq("\n 2 users matching search
\n
\n") end context "with 1 result" do let(:count) { 1 } it "renders table caption including the search results and total" do expect(result.to_html).to eq("\n 1 user matching search
\n
\n") end end end context "when filter results are found" do let(:searched) { nil } it "renders table caption including the search results and total" do expect(result.to_html).to eq("\n 2 users matching filters
\n
\n") end context "with 1 result" do let(:count) { 1 } it "renders table caption including the search results and total" do expect(result.to_html).to eq("\n 1 user matching filters
\n
\n") end end end context "when no search/filter is applied" do let(:searched) { nil } let(:filters_count) { nil } it "renders table caption with total count only" do expect(result.to_html).to eq("\n \n 2 total schemes\n \n\n") end context "with 1 result" do let(:count) { 1 } it "renders table caption with total count only" do expect(result.to_html).to eq("\n \n 1 total scheme\n \n\n") end end end context "when nothing is found" do let(:count) { 0 } it "renders table caption with total count only" do expect(result.to_html).to eq("\n 0 users matching search and filters
\n
\n") end end context "when 1 record is found" do let(:count) { 1 } it "renders table caption with total count only" do expect(result.to_html).to eq("\n 1 user matching search and filters
\n
\n") end end end