mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-10 23:07:47 +00:00
Fix offense constant definition in block in reports/line_items_spec.rb
This commit is contained in:
@@ -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'
|
||||
|
||||
@@ -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] } }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user