Moving from new to edit

This commit is contained in:
Will Marshall
2014-02-14 14:26:31 +11:00
parent a722320ece
commit 5c498735b0
4 changed files with 29 additions and 11 deletions

View File

@@ -5,9 +5,9 @@ class Shop::CheckoutController < BaseController
before_filter :require_order_cycle
before_filter :require_line_items
def new
def edit
@order = current_order
@order.bill_address = Spree::Address.new
@order.bill_address ||= Spree::Address.new
end
private

View File

@@ -1,4 +1,5 @@
- unless spree_current_user
.row
%section#checkout_login
.large-4.columns

View File

@@ -8,9 +8,11 @@ Openfoodnetwork::Application.routes.draw do
end
namespace :shop do
resource :checkout, controller: :checkout do
get :new
end
#resource :checkout, only: :edit, controller: :checkout do
#get '', to: ""
#end
get '/checkout', :to => 'checkout#edit' , :as => :checkout
post '/checkout', :to => 'checkout#update' , :as => :update_checkout
end
resources :enterprises do

View File

@@ -1,21 +1,36 @@
require 'spec_helper'
describe Shop::CheckoutController do
let(:distributor) { double(:distributor) }
let(:order_cycle) { create(:order_cycle) }
let(:order) { create(:order) }
it "redirects home when no distributor is selected" do
get :new
get :edit
response.should redirect_to root_path
end
it "redirects to the shop when no order cycle is selected" do
controller.stub(:current_distributor).and_return(double(:distributor))
get :new
controller.stub(:current_distributor).and_return(distributor)
get :edit
response.should redirect_to shop_path
end
it "redirects to the shop when no line items are present" do
controller.stub(:current_distributor).and_return(distributor)
controller.stub(:current_order_cycle).and_return(order_cycle)
controller.stub(:current_order).and_return(order)
order.stub_chain(:line_items, :empty?).and_return true
get :edit
response.should redirect_to shop_path
end
it "renders when both distributor and order cycle is selected" do
controller.stub(:current_distributor).and_return(double(:distributor))
controller.stub(:current_order_cycle).and_return(create(:order_cycle))
get :new
controller.stub(:current_distributor).and_return(distributor)
controller.stub(:current_order_cycle).and_return(order_cycle)
controller.stub(:current_order).and_return(order)
order.stub_chain(:line_items, :empty?).and_return false
get :edit
response.should be_success
end
end