Guest User

Untitled

a guest
Nov 17th, 2018
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. describe '#total_price' do
  2. before(:each) do
  3. user = User.new(email: 'test1@example.com', password: 'test1234')
  4. price = 900
  5. @order = Order.new(user: user, total: price)
  6. end
  7. it 'does something' do
  8. @order.save
  9. expect(@order.total).to eql(900)
  10. end
  11. end
  12.  
  13. 1) Order Instance Methods #total_price does something
  14. Failure/Error: expect(@order.total).to eql(900)
  15.  
  16. expected: 900
  17. got: 0.0
  18.  
  19. (compared using eql?)
  20.  
  21. class Order < ApplicationRecord
  22. belongs_to :user, optional: true
  23. has_many :order_items
  24. before_save :update_total
  25.  
  26. def total_price
  27. price = order_items.collect do |order_item|
  28. order_item.item_unit_price * order_item.quantity
  29. end
  30. price.sum
  31. end
  32.  
  33. private
  34.  
  35. def update_total
  36. self[:total] = total_price
  37. end
  38. end
  39.  
  40. def total_price
  41. price = order_items.collect do |order_item|
  42. order_item.item_unit_price * order_item.quantity
  43. end
  44. price.sum
  45. end
  46.  
  47. describe '#total_price' do
  48. before(:each) do
  49. user = User.new(email: 'test1@example.com', password: 'test1234')
  50. order = Order.new(user: user)
  51. order_item = OrderItem.new(order: order, item_unit_price: 100, quantity: 2)
  52. end
  53. it 'calculates order total' do
  54. expect(order.total_price).to eq(200)
  55. end
  56. end
Add Comment
Please, Sign In to add comment