require 'rails_helper' describe ApplicationHelper do describe '#code_tag' do context 'with code' do it "builds a 'pre' tag" do code = 'puts 42' expect(code_tag(code)).to eq("
#{code}
") end end context 'without code' do it 'calls #empty' do expect(code_tag('')).to eq(empty) end end end describe '#empty' do it "builds an 'i' tag" do expect(empty).to eq('') end end describe '#label_column' do it 'translates the label' do expect(I18n).to receive(:translate).at_least(:once) label_column('foo') end end describe '#no' do it "builds an 'i' tag" do expect(no).to eq('') end end describe '#progress_bar' do let(:html) { progress_bar(value) } let(:value) { 42 } it "builds nested 'div' tags" do expect(html).to have_css('div.progress div.progress-bar') end it 'assigns the correct text' do expect(html).to have_text("#{value}%") end it 'uses the correct width' do expect(html).to have_css("div.progress-bar[style='width: 42%;']") end end describe '#row' do let(:html) { row(label: 'foo', value: 42) } it "builds nested 'div' tags" do expect(html.scan(/<\/div>/).length).to eq(3) end end describe '#value_column' do context 'without a value' do let(:html) { value_column('') } it "builds a 'div' tag" do expect(html).to start_with('') end end end