Sha256: 1de2b98516cc417963a6177aaaa747e23eeffee51842a77e23dc9114359e84e0

Contents?: true

Size: 1.67 KB

Versions: 6

Compression:

Stored size: 1.67 KB

Contents

require 'spec_helper'

describe Codeqa::ErbSanitizer do
  context 'erb' do
    # let(:source) do
    #   source_with(
    #     IO.read(
    #       Codeqa.root.join('spec', 'fixtures', 'erb_example.html.erb')
    #     )
    #   )
    # end
    def compile(content)
      described_class.new(content).result
    end

    it 'should remove erb tags' do
      source = '<div><% some ruby %></div>'
      expected = '<div></div>'
      doc = compile(source)
      expect(doc).to eq(expected)
      expect(Nokogiri::XML(doc).errors).to be_empty
    end
    it 'should remove erb tags within attributes' do
      source = '<div <%dont touch this%> baz="bla <%=inside%> <%=inside2%> stuff" after="meh"></div>'
      expected = '<div  baz="bla   stuff" after="meh"></div>'
      doc = compile(source)
      expect(doc).to eq(expected)
      expect(Nokogiri::XML(doc).errors).to be_empty
    end
    it 'should properly remove multiline erb tags and keep the correct line numbers' do
      source = <<-EOR
<div>
<% render :partial => :foo, :locals => { :foo => 'foo',
                                         :bar => 'bar'
                                         :baz => 'baz' }%>
</div>
EOR
      expected = <<-EOR
<div>



</div>
EOR
      doc = compile(source)
      expect(doc).to eq(expected)
      expect(Nokogiri::XML(doc).errors).to be_empty
    end

    it 'should work on a more difficult example' do
      source = IO.read(Codeqa.root.join('spec', 'fixtures', 'erb_example.html.erb'))
      expected = IO.read(Codeqa.root.join('spec', 'fixtures', 'erb_example.html'))
      doc = compile(source)
      expect(doc).to eq(expected)
      expect(Nokogiri::XML(doc).errors).to be_empty
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
codeqa-0.5.0 spec/lib/codeqa/utils/erb_sanitizer_spec.rb
codeqa-0.4.2 spec/lib/codeqa/utils/erb_sanitizer_spec.rb
codeqa-0.4.1 spec/lib/codeqa/utils/erb_sanitizer_spec.rb
codeqa-0.4.0 spec/lib/codeqa/utils/erb_sanitizer_spec.rb
codeqa-0.4.0.pre2 spec/lib/codeqa/utils/erb_sanitizer_spec.rb
codeqa-0.4.0.pre spec/lib/codeqa/utils/erb_sanitizer_spec.rb