module Liquid::Rails::Rspec::ViewControllerContext

Public Instance Methods

context(assigns={}) click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 29
def context(assigns={})
  @context ||= ::Liquid::Context.new(assigns, {}, { helper: @view, view: @view, controller: @controller })
end
controller() click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 25
def controller
  @controller
end
expect_template_result(template, expected, assigns={}) click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 33
def expect_template_result(template, expected, assigns={})
  # make assigns available inside context
  assigns.each do |key, value|
    context[key] = value
  end

  actual = Liquid::Template.parse(template).render!(context)
  expect(actual.to_s.strip).to eq(expected.to_s.strip)
end
setup_view_and_controller() click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 7
def setup_view_and_controller
  @view                 = ActionView::Base.new
  @controller           = ApplicationController.new
  @request              = build_request_for_liquid
  @response             = build_response_for_liquid
  @response.request     = @request
  @controller.request   = @request
  @controller.response  = @response
  @controller.params    = {}
  @view.assign_controller(@controller)
  @view.class.send(:include, @controller._helpers)
  @view.class.send(:include, ::Rails.application.routes.url_helpers)
end
view() click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 21
def view
  @view
end

Private Instance Methods

build_request_for_liquid() click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 45
def build_request_for_liquid
  if ::Rails::VERSION::MAJOR < 5
    ActionController::TestRequest.new({'PATH_INFO' => '/'})
  else
    ActionController::TestRequest.new({'PATH_INFO' => '/'}, {})
  end
end
build_response_for_liquid() click to toggle source
# File lib/liquid-rails/rspec/view_controller_context.rb, line 53
def build_response_for_liquid
  if ::Rails::VERSION::MAJOR < 5
    ActionController::TestResponse.new
  else
    ActionDispatch::TestResponse.new
  end
end