diff --git a/.rubocop_todo.yml b/.rubocop_todo.yml index 919cb02439..4a90dba13a 100644 --- a/.rubocop_todo.yml +++ b/.rubocop_todo.yml @@ -11,7 +11,6 @@ # AllowedMethods: enums Lint/ConstantDefinitionInBlock: Exclude: - - 'spec/lib/reports/line_items_spec.rb' - 'spec/models/spree/ability_spec.rb' - 'spec/models/spree/gateway_spec.rb' - 'spec/models/spree/preferences/configuration_spec.rb' diff --git a/spec/lib/reports/line_items_spec.rb b/spec/lib/reports/line_items_spec.rb index 0e266352c1..8e04eb714f 100644 --- a/spec/lib/reports/line_items_spec.rb +++ b/spec/lib/reports/line_items_spec.rb @@ -3,35 +3,37 @@ require 'spec_helper' describe Reporting::LineItems do - subject(:reports_line_items) { described_class.new(order_permissions, params) } - # This object lets us add some test coverage despite the very deep coupling between the class # under test and the various objects it depends on. Other more common moking strategies where very # hard. - class FakeOrderPermissions - def initialize(line_items, orders_relation) - @relations = Spree::LineItem.where(id: line_items.map(&:id)) - @orders_relation = orders_relation + let(:fake_order_permissions) do + Class.new do + def initialize(line_items, orders_relation) + @relations = Spree::LineItem.where(id: line_items.map(&:id)) + @orders_relation = orders_relation + end + + def visible_line_items + relations + end + + def editable_line_items + line_item = FactoryBot.create(:line_item) + Spree::LineItem.where(id: line_item.id) + end + + def visible_orders + orders_relation + end + + private + + attr_reader :relations, :orders_relation end - - def visible_line_items - relations - end - - def editable_line_items - line_item = FactoryBot.create(:line_item) - Spree::LineItem.where(id: line_item.id) - end - - def visible_orders - orders_relation - end - - private - - attr_reader :relations, :orders_relation end + subject(:reports_line_items) { described_class.new(order_permissions, params) } + describe '#list' do let!(:order) do create( @@ -44,7 +46,7 @@ describe Reporting::LineItems do let!(:line_item1) { create(:line_item, order:) } let(:orders_relation) { Spree::Order.where(id: order.id) } - let(:order_permissions) { FakeOrderPermissions.new([line_item1], orders_relation) } + let(:order_permissions) { fake_order_permissions.new([line_item1], orders_relation) } let(:params) { {} } it 'returns masked data' do @@ -58,7 +60,7 @@ describe Reporting::LineItems do let!(:line_item2) { create(:line_item, order:) } let!(:line_item3) { create(:line_item, order:) } let(:order_permissions) do - FakeOrderPermissions.new([line_item1, line_item2, line_item3], orders_relation) + fake_order_permissions.new([line_item1, line_item2, line_item3], orders_relation) end let(:params) { { variant_id_in: [line_item3.variant.id, line_item1.variant.id] } }