From 61713dda6bd103420cec740f964b680d793ceab3 Mon Sep 17 00:00:00 2001 From: Georg Gadinger Date: Thu, 16 Feb 2023 13:18:08 +0100 Subject: [PATCH] add view specs for inbox/show.turbo_stream --- .../inbox/show.turbo_stream.haml_spec.rb | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 spec/views/inbox/show.turbo_stream.haml_spec.rb diff --git a/spec/views/inbox/show.turbo_stream.haml_spec.rb b/spec/views/inbox/show.turbo_stream.haml_spec.rb new file mode 100644 index 00000000..25d41212 --- /dev/null +++ b/spec/views/inbox/show.turbo_stream.haml_spec.rb @@ -0,0 +1,58 @@ +# frozen_string_literal: true + +require "rails_helper" + +describe "inbox/show.turbo_stream.haml", type: :view do + let(:user) { FactoryBot.create(:user) } + + before do + sign_in user + end + + subject(:rendered) { render } + + context "with some inbox entries" do + let(:inbox_entry1) { Inbox.create(user:, question: FactoryBot.create(:question)) } + let(:inbox_entry2) { Inbox.create(user:, question: FactoryBot.create(:question)) } + + before do + assign :inbox, [inbox_entry2, inbox_entry1] + end + + it "appends to entries" do + expect(rendered).to match(//) + end + + it "renders inbox entries" do + expect(rendered).to match(/id='inbox_#{inbox_entry1.id}'/) + expect(rendered).to match(/id='inbox_#{inbox_entry2.id}'/) + end + + it "updates the paginator" do + expect(rendered).to match(//) + end + + context "when more data is available" do + before do + assign :more_data_available, true + assign :inbox_last_id, 1337 + end + + it "has the correct params on the button" do + expect(rendered).to match(/input type="hidden" name="last_id" value="1337"/) + expect(rendered).not_to match(/input type="hidden" name="author"/) + end + + context "when passed an author" do + before do + assign :author, "jyrki" + end + + it "has the correct params on the button" do + expect(rendered).to match(/input type="hidden" name="last_id" value="1337"/) + expect(rendered).to match(/input type="hidden" name="author"/) + end + end + end + end +end