mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-02-02 13:41:00 -05:00
76 lines
2.2 KiB
Ruby
76 lines
2.2 KiB
Ruby
## DEPRECATION NOTICE: Do not add new tests to this file!
|
|
##
|
|
## View and controller tests are deprecated in the Growstuff project.
|
|
## We no longer write new view and controller tests, but instead write
|
|
## feature tests (in spec/features) using Capybara (https://github.com/jnicklas/capybara).
|
|
## These test the full stack, behaving as a browser, and require less complicated setup
|
|
## to run. Please feel free to delete old view/controller tests as they are reimplemented
|
|
## in feature tests.
|
|
##
|
|
## If you submit a pull request containing new view or controller tests, it will not be
|
|
## merged.
|
|
|
|
|
|
|
|
|
|
|
|
require 'rails_helper'
|
|
|
|
describe OrderItemsController do
|
|
|
|
login_member(:admin_member)
|
|
|
|
before(:each) do
|
|
@member = FactoryGirl.create(:member)
|
|
sign_in @member
|
|
@product = FactoryGirl.create(:product)
|
|
@order = FactoryGirl.create(:order, :member => @member)
|
|
@order_item = FactoryGirl.create(:order_item,
|
|
:order => @order,
|
|
:product => @product,
|
|
:price => @product.min_price
|
|
)
|
|
end
|
|
|
|
describe "POST create" do
|
|
|
|
it "redirects to order" do
|
|
@order = FactoryGirl.create(:order, :member => @member)
|
|
post :create, {:order_item => {
|
|
:order_id => @order.id,
|
|
:product_id => @product.id,
|
|
:price => @product.min_price
|
|
}}
|
|
response.should redirect_to(OrderItem.last.order)
|
|
end
|
|
|
|
it 'creates an order for you' do
|
|
@member = FactoryGirl.create(:member)
|
|
sign_in @member
|
|
@product = FactoryGirl.create(:product)
|
|
expect {
|
|
post :create, {:order_item => {
|
|
:product_id => @product.id,
|
|
:price => @product.min_price
|
|
}}
|
|
}.to change(Order, :count).by(1)
|
|
OrderItem.last.order.should be_an_instance_of Order
|
|
end
|
|
|
|
describe "with non-int price" do
|
|
it "converts 3.33 to 333 cents" do
|
|
@order = FactoryGirl.create(:order, :member => @member)
|
|
@product = FactoryGirl.create(:product, :min_price => 1)
|
|
expect {
|
|
post :create, {:order_item => {
|
|
:order_id => @order.id,
|
|
:product_id => @product.id,
|
|
:price => 3.33
|
|
}}
|
|
}.to change(OrderItem, :count).by(1)
|
|
OrderItem.last.price.should eq 333
|
|
end
|
|
end
|
|
end
|
|
end
|