Module: Arbre::Rails::RSpec::ArbreSupport
- Defined in:
- lib/arbre/rails/rspec/arbre_support.rb
Overview
Adds support for an Arbre context.
Instance Method Summary collapse
-
#arbre_context ⇒ Object
(also: #arbre)
Simulates how ArbreTemplateHandler sets up a context, but using the context build block.
-
#assigns ⇒ Object
Override to provide default assigns (or define let(:assigns) {…}).
- #build_helpers ⇒ Object
- #controller ⇒ Object
-
#helpers ⇒ Object
Override to provide default helpers (or define let(:helpers) {…}).
- #request ⇒ Object
Instance Method Details
#arbre_context ⇒ Object Also known as: arbre
Simulates how ArbreTemplateHandler sets up a context, but using the context build block.
10 11 12 |
# File 'lib/arbre/rails/rspec/arbre_support.rb', line 10 def arbre_context @arbre_context ||= Arbre::Context.new(assigns, helpers) end |
#assigns ⇒ Object
Override to provide default assigns (or define let(:assigns) {…}).
16 17 18 |
# File 'lib/arbre/rails/rspec/arbre_support.rb', line 16 def assigns @assigns ||= {} end |
#build_helpers ⇒ Object
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/arbre/rails/rspec/arbre_support.rb', line 25 def build_helpers helpers = ActionView::Base.new # Simulate a default controller & request. allow(helpers).to receive(:controller).and_return(controller) allow(helpers).to receive(:request).and_return(request) # Include all application controller's helpers. if defined?(ApplicationController) helpers.singleton_class.send :include, ApplicationController._helpers end # Stub asset_path allow(helpers).to receive(:asset_path) { |asset| "/assets/#{asset}" } helpers end |
#controller ⇒ Object
43 44 45 46 47 |
# File 'lib/arbre/rails/rspec/arbre_support.rb', line 43 def controller @controller ||= ActionController::Base.new.tap do |controller| controller.request = request end end |
#helpers ⇒ Object
Override to provide default helpers (or define let(:helpers) {…}).
21 22 23 |
# File 'lib/arbre/rails/rspec/arbre_support.rb', line 21 def helpers @helpers ||= build_helpers end |
#request ⇒ Object
49 50 51 |
# File 'lib/arbre/rails/rspec/arbre_support.rb', line 49 def request @request ||= ActionDispatch::Request.new('rack.input' => '') end |