Sha256: 60bc6d6e3d0a4c4a2db7eb6f1dceb7b11dc13956ee29880eac6c100823518f39

Contents?: true

Size: 1.72 KB

Versions: 24

Compression:

Stored size: 1.72 KB

Contents

describe "Fortitude record_tag_emission behavior", :type => :system do
  before :each do
    @recording_class = widget_class do
      attr_reader :recorded_tags

      def content
        div {
          p {
            @recorded_tags = rendering_context.current_element_nesting.dup
          }
        }
      end
    end
  end

  it "should not record tag emission by default" do
    expect(recorded_tags_from(@recording_class.new)).to eq([ ])
  end

  it "should record tag emission if asked to" do
    @recording_class.class_eval { record_tag_emission true }
    expect(recorded_tags_from(@recording_class.new).map(&:name)).to eq([ :div, :p ])
  end

  it "should record tag emission across two widgets" do
    parent_class = widget_class do
      record_tag_emission true
      attr_accessor :child_instance

      def content
        div {
          widget child_instance
        }
      end
    end

    child_class = widget_class do
      record_tag_emission true
      attr_reader :recorded_tags

      def content
        p {
          @recorded_tags = rendering_context.current_element_nesting.dup
        }
      end
    end

    parent_instance = parent_class.new
    child_instance = child_class.new

    parent_instance.child_instance = child_instance

    results = render(parent_instance)
    expect(results).to eq("<div><p></p></div>")

    rt = child_instance.recorded_tags

    expect(rt.shift).to be(parent_instance)
    expect(rt.shift.name).to eq(:div)
    expect(rt.shift).to be(child_instance)
    expect(rt.shift.name).to eq(:p)
    expect(rt).to eq([ ])
  end

  def recorded_tags_from(instance)
    expect(render(instance)).to eq("<div><p></p></div>")
    rt = instance.recorded_tags
    expect(rt.shift).to be(instance)
    rt
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
fortitude-0.9.6-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.6 spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.5-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.5 spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.4-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.4 spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.3-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.3 spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.2-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.2 spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.1-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.1 spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.0-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.9.0 spec/system/record_tag_emission_system_spec.rb
fortitude-0.0.10-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.0.10 spec/system/record_tag_emission_system_spec.rb
fortitude-0.0.9-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.0.9 spec/system/record_tag_emission_system_spec.rb
fortitude-0.0.7-java spec/system/record_tag_emission_system_spec.rb
fortitude-0.0.7 spec/system/record_tag_emission_system_spec.rb