我有一个来自gem中引擎的rails控制器,其方法是OrdersController #populate。我正在使用像这样的after_action更改类,以便用户在购物车中只能有一个订单项。
module Spree
module Controllers
module Orders
module SingleSubscriptionAddDecorator
def cart_path
checkout_state_path(@order.checkout_steps.first)
end
def self.prepended(base)
base.after_action(
:ensure_one_in_cart,
only: :populate
)
end
private
def ensure_one_in_cart
if @order.line_items.length > 1
@order.line_items[1..-1].each { |li| li.delete }
end
@order.line_items.first.update_attribute(:quantity, 1) if @order.line_items.first.quantity > 1
end
end
end
end
end
Spree::OrdersController.prepend(Spree::Controllers::Orders::SingleSubscriptionAddDecorator)
我想在此控制器行为中添加rspec,但无法从我的rspec中访问gems路由。我该如何测试这种行为?
感谢!