mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-01-24 17:27:50 -05:00
58 lines
1.6 KiB
Ruby
58 lines
1.6 KiB
Ruby
require 'rails_helper'
|
|
|
|
describe OrderItemsController do
|
|
login_member(:admin_member)
|
|
|
|
let(:member) { FactoryBot.create(:member) }
|
|
let(:product) { FactoryBot.create(:product) }
|
|
let(:order) { FactoryBot.create(:order, member: member) }
|
|
let(:order_item) do
|
|
FactoryBot.create(:order_item,
|
|
order: order,
|
|
product: product,
|
|
price: product.min_price)
|
|
end
|
|
|
|
context 'signed in' do
|
|
before { sign_in member }
|
|
|
|
describe "POST create" do
|
|
describe "redirects to order" do
|
|
before do
|
|
post :create, params: {
|
|
order_item: { order_id: order.id, product_id: product.id, price: product.min_price }
|
|
}
|
|
end
|
|
it { expect(response).to redirect_to(OrderItem.last.order) }
|
|
it { expect(OrderItem.last.order).to be_an_instance_of Order }
|
|
end
|
|
|
|
describe 'creates an order for you' do
|
|
it do
|
|
expect do
|
|
post :create, params: {
|
|
order_item: {
|
|
product_id: product.id,
|
|
price: product.min_price
|
|
}
|
|
}
|
|
end.to change(Order, :count).by(1)
|
|
end
|
|
end
|
|
|
|
describe "with non-int price" do
|
|
it "converts 3.33 to 333 cents" do
|
|
order = FactoryBot.create(:order, member: member)
|
|
product = FactoryBot.create(:product, min_price: 1)
|
|
expect do
|
|
post :create, params: {
|
|
order_item: { order_id: order.id, product_id: product.id, price: 3.33 }
|
|
}
|
|
end.to change(OrderItem, :count).by(1)
|
|
OrderItem.last.price.should eq 333
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|