require 'spec_helper' describe "catalog/_constraints_element.html.erb" do describe "for simple display" do before do render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value"} end it "should render label and value" do expect(rendered).to have_selector("span.appliedFilter.constraint") do |s| expect(s).to have_css("span.constraint-value") expect(s).to_not have_css("a.constraint-value") expect(s).to have_selector "span.filterName", :content => "my label" expect(s).to have_selector "span.filterValue", :content => "my value" end end end describe "with remove link" do before do render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:remove => "http://remove"}} end it "should include remove link" do expect(rendered).to have_selector("span.appliedFilter") do |s| expect(s).to have_selector(".remove[href='http://remove']") end end it "should have an accessible remove label" do expect(rendered).to have_selector(".remove") do |s| expect(s).to have_content("Remove constraint my label: my value") end end end describe "with custom classes" do before do render :partial => "catalog/constraints_element", :locals => {:label => "my label", :value => "my value", :options => {:classes => ["class1", "class2"]}} end it "should include them" do expect(rendered).to have_selector("span.appliedFilter.constraint.class1.class2") end end describe "with no escaping" do before do render( :partial => "catalog/constraints_element", :locals => {:label => "my label".html_safe, :value => "my value".html_safe} ) end it "should not escape key and value" do expect(rendered).to have_selector("span.appliedFilter.constraint span.filterName span.custom_label") expect(rendered).to have_selector("span.appliedFilter.constraint span.filterValue span.custom_value") end end end