module Spree module ControllerHacks def get(action, parameters = nil, session = nil, flash = nil) process_spree_action(action, parameters, session, flash, "GET") end # Executes a request simulating POST HTTP method and set/volley the response def post(action, parameters = nil, session = nil, flash = nil) process_spree_action(action, parameters, session, flash, "POST") end # Executes a request simulating PUT HTTP method and set/volley the response def put(action, parameters = nil, session = nil, flash = nil) process_spree_action(action, parameters, session, flash, "PUT") end # Executes a request simulating DELETE HTTP method and set/volley the response def delete(action, parameters = nil, session = nil, flash = nil) process_spree_action(action, parameters, session, flash, "DELETE") end private def process_spree_action(action, parameters = nil, session = nil, flash = nil, method = "GET") parameters ||= {} process(action, parameters.merge!(:use_route => :spree), session, flash, method) end end end RSpec.configure do |c| c.include Spree::ControllerHacks, :type => :controller end