diff --git a/test/controllers/orders_controller_test.rb b/test/controllers/orders_controller_test.rb index ca9705225f30bb92ea773f1724d3a17a5bdba559..350d137925f24238ec0a6ac4e7d1829b7227a2b4 100644 --- a/test/controllers/orders_controller_test.rb +++ b/test/controllers/orders_controller_test.rb @@ -1,12 +1,33 @@ require 'test_helper' -#TODO: write controller tests for orders class OrdersControllerTest < ActionDispatch::IntegrationTest - test "should show an order" do - + test 'Should show a specific order when logged in' do + sign_in_as_tester + get order_url(orders(:one)) + assert_response(:success) + assert_select 'body.orders' do + assert_select 'img', 2 #Order 1 has 2 order entries, each will have a row in the table with their image in a cell + end end - - test "should create an order" do - + test 'should not show an order when not logged in' do + get order_url(orders(:one)) + assert_response(:redirect) + assert_redirected_to(login_url) + assert_equal 'Login to view this content', flash[:danger] + end + test 'should create an order' do + sign_in_as_tester + assert_difference('Order.count', +1) do + post orders_url, params: {order: {totalCost: 100, Email: "alternateBillEmail@testfix.com", user:users(:one)}} + end + assert_response(:redirect) + assert_equal 'Order has been placed', flash[:notice] + end + test 'should not create an order when not logged in' do + assert_no_difference('Order.count') do + post orders_url, params: {order: {totalCost: 100, Email: "alternateBillEmail@testfix.com", user:users(:one)}} + end + assert_response(:redirect) + assert_redirected_to(login_url) + assert_equal 'Login to view this content', flash[:danger] end - end