Module: Liquid::Rails::Rspec::ViewControllerContext

Extended by:
ActiveSupport::Concern
Included in:
DropExampleGroup, FilterExampleGroup, TagExampleGroup
Defined in:
lib/liquid-rails/rspec/view_controller_context.rb

Instance Method Summary collapse

Instance Method Details

#context(assigns = {}) ⇒ Object



26
27
28
# File 'lib/liquid-rails/rspec/view_controller_context.rb', line 26

def context(assigns={})
  @context ||= ::Liquid::Context.new(assigns, {}, { helper: @view, view: @view, controller: @controller })
end

#controllerObject



22
23
24
# File 'lib/liquid-rails/rspec/view_controller_context.rb', line 22

def controller
  @controller
end

#expect_template_result(template, expected, assigns = {}) ⇒ Object



30
31
32
33
34
35
36
37
38
# File 'lib/liquid-rails/rspec/view_controller_context.rb', line 30

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_controllerObject



7
8
9
10
11
12
13
14
15
16
# File 'lib/liquid-rails/rspec/view_controller_context.rb', line 7

def setup_view_and_controller
  @view                 = ActionView::Base.new
  @controller           = ApplicationController.new
  @request              = ActionDispatch::TestRequest.create('PATH_INFO' => '/')
  @controller.request   = @request
  @controller.params    = {}
  @view.assign_controller(@controller)
  @view.class.send(:include, @controller._helpers)
  @view.class.send(:include, ::Rails.application.routes.url_helpers)
end

#viewObject



18
19
20
# File 'lib/liquid-rails/rspec/view_controller_context.rb', line 18

def view
  @view
end