Sha256: 20c5168c8afd9a57b8630a135ff53a8a327466594ecf909849130888cfd5597c

Contents?: true

Size: 1.16 KB

Versions: 1

Compression:

Stored size: 1.16 KB

Contents

require 'spec_helper'

describe Rafters::Renderer do
  let(:view_context) { double("ViewContext").as_null_object }
  let(:controller) { double("Controller").as_null_object }

  before do
    view_context.stub(:render).and_return("<p>Output</p>")
    view_context.stub(:content_tag).and_yield
    controller.stub(:view_context).and_return(view_context)
  end

  describe "when initialized" do
    before do
      Rafters.stub(:view_paths).and_return(["/path/to/views"])
    end

    it "should add the view paths for all components to the controller" do
      controller.should_receive(:prepend_view_path).with("/path/to/views")
      Rafters::Renderer.new(controller)
    end
  end

  describe "#render" do
    subject { Rafters::Renderer.new(controller) }

    let(:component) { double("Component").as_null_object }

    before do
      component.stub(:attributes).and_return({ title: "Foo" })
      component.stub(:template_name).and_return("template")
    end

    it "renders the component template with it's settings and attributes" do
      view_context.should_receive(:render).with(file: "/template", locals: { title: "Foo" })
      subject.render(component)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rafters-1.2.1 spec/rafters/renderer_spec.rb