From f19a6f0dec520dcbbb31619b3015bff800db105f Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Tue, 25 Jun 2019 12:19:16 +0100 Subject: [PATCH] Add tests for class_eval on Spree::Calculator private method #line_items_for --- spec/models/spree/calculator_spec.rb | 36 ++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 spec/models/spree/calculator_spec.rb diff --git a/spec/models/spree/calculator_spec.rb b/spec/models/spree/calculator_spec.rb new file mode 100644 index 0000000000..5caf4dca72 --- /dev/null +++ b/spec/models/spree/calculator_spec.rb @@ -0,0 +1,36 @@ +require 'spec_helper' + +module Spree + describe Calculator do + let(:calculator) { Spree::Calculator.new } + let!(:enterprise) { create(:enterprise) } + let!(:order) { create(:order) } + let!(:line_item) { create(:line_item, order: order) } + let!(:line_item2) { create(:line_item, order: order) } + + before do + order.line_items << line_item + order.line_items << line_item2 + end + + describe "#line_items_for" do + it "returns the line item if given a line item" do + result = calculator.__send__(:line_items_for, line_item) + + expect(result).to eq [line_item] + end + + it "returns line items if given an order" do + result = calculator.__send__(:line_items_for, order) + + expect(result).to eq [line_item, line_item2] + end + + it "returns the original object if given anything else" do + result = calculator.__send__(:line_items_for, enterprise) + + expect(result).to eq [enterprise] + end + end + end +end