require 'rails_helper' RSpec.describe Spree::BaseHelper, type: :helper do include Spree::BaseHelper let(:current_store){ create :store } context "available_countries" do let(:country) { create(:country) } before do 3.times { create(:country) } end context "with no checkout zone defined" do before do Spree::Config[:checkout_zone] = nil end it "return complete list of countries" do expect(available_countries.count).to eq(Spree::Country.count) end end context "with a checkout zone defined" do context "checkout zone is of type country" do before do @country_zone = create(:zone, name: "CountryZone") @country_zone.members.create(zoneable: country) Spree::Config[:checkout_zone] = @country_zone.name end it "return only the countries defined by the checkout zone" do expect(available_countries).to eq([country]) end end context "checkout zone is of type state" do before do state_zone = create(:zone, name: "StateZone") state = create(:state, country: country) state_zone.members.create(zoneable: state) Spree::Config[:checkout_zone] = state_zone.name end it "return complete list of countries" do expect(available_countries.count).to eq(Spree::Country.count) end end end end # Regression test for https://github.com/spree/spree/issues/2034 context "flash_message" do let(:flash) { { "notice" => "ok", "foo" => "foo", "bar" => "bar" } } it "should output all flash content" do flash_messages html = Nokogiri::HTML(helper.output_buffer) expect(html.css(".notice").text).to eq("ok") expect(html.css(".foo").text).to eq("foo") expect(html.css(".bar").text).to eq("bar") end it "should output flash content except one key" do flash_messages(ignore_types: :bar) html = Nokogiri::HTML(helper.output_buffer) expect(html.css(".notice").text).to eq("ok") expect(html.css(".foo").text).to eq("foo") expect(html.css(".bar").text).to be_empty end it "should output flash content except some keys" do flash_messages(ignore_types: [:foo, :bar]) html = Nokogiri::HTML(helper.output_buffer) expect(html.css(".notice").text).to eq("ok") expect(html.css(".foo").text).to be_empty expect(html.css(".bar").text).to be_empty expect(helper.output_buffer).to eq("