Fix offense constant definition in block in reports/line_items_spec.rb

This commit is contained in:
Ana Nunes da Silva
2024-03-26 10:54:16 +00:00
parent cfca7816d5
commit 0726e4c1d0
2 changed files with 27 additions and 26 deletions

View File

@@ -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'

View File

@@ -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] } }