Files
growstuff/spec/controllers/orders_controller_spec.rb
milesgould d8bf8ae4df De-deprecate controller and view specs
We deprecated controller and view specs on the grounds that they were
brittle, and were a poorer measure of user experience than feature
specs. However, feature specs have their own problems: they're much
slower to run, and flakier (see #901). We also ran into a few cases
where feature specs erroneously passed because they were checking for
the presence of a string that occurred in the error page!

Hence, we're cautiously un-deprecating controller and view specs.

Fixes #1132
2017-11-17 16:51:24 +00:00

54 lines
1.3 KiB
Ruby

require 'rails_helper'
describe OrdersController do
login_member(:admin_member)
def valid_attributes
{ "member_id" => 1 }
end
def valid_session
{}
end
describe "GET checkout" do
it 'sets the referral_code' do
member = FactoryBot.create(:member)
sign_in member
order = Order.create!(member_id: member.id)
get :checkout, id: order.to_param, referral_code: 'FOOBAR'
order.reload
order.referral_code.should eq 'FOOBAR'
end
it "redirects to Paypal" do
member = FactoryBot.create(:member)
sign_in member
order = Order.create!(member_id: member.id)
get :checkout, id: order.to_param
response.status.should eq 302
response.redirect_url.should match(/paypal\.com/)
end
end
describe "GET complete" do
it "assigns the requested order as @order" do
member = FactoryBot.create(:member)
sign_in member
order = Order.create!(member_id: member.id)
get :complete, id: order.to_param
assigns(:order).should eq(order)
end
end
describe "DELETE destroy" do
it "redirects to the shop" do
member = FactoryBot.create(:member)
sign_in member
order = Order.create!(member_id: member.id)
delete :destroy, id: order.id
response.should redirect_to(shop_url)
end
end
end