mirror of
https://github.com/Growstuff/growstuff.git
synced 2026-01-25 17:57:49 -05:00
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
54 lines
1.3 KiB
Ruby
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
|