mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-19 04:49:15 +00:00
Refactor spec
This commit is contained in:
@@ -7,14 +7,37 @@ RSpec.describe Orders::MaskDataService do
|
||||
let(:distributor) { create(:enterprise) }
|
||||
let(:order) { create(:order, distributor:, ship_address: create(:address)) }
|
||||
|
||||
context 'when displaying customer names is allowed' do
|
||||
before { distributor.show_customer_names_to_suppliers = true }
|
||||
|
||||
it 'masks personal addresses and email' do
|
||||
shared_examples "mask customer name" do
|
||||
it 'masks the full name' do
|
||||
described_class.new(order).call
|
||||
|
||||
expect(order.bill_address.attributes).to include(
|
||||
'firstname' => 'HIDDEN',
|
||||
'lastname' => ''
|
||||
)
|
||||
expect(order.ship_address.attributes).to include(
|
||||
'firstname' => 'HIDDEN',
|
||||
'lastname' => ''
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples "mask customer contact data" do
|
||||
it 'masks personal phone and email' do
|
||||
described_class.new(order).call
|
||||
|
||||
expect(order.bill_address.attributes).to include('phone' => '')
|
||||
expect(order.ship_address.attributes).to include('phone' => '')
|
||||
|
||||
expect(order.email).to eq('HIDDEN')
|
||||
end
|
||||
end
|
||||
|
||||
shared_examples "mask customer address" do
|
||||
it 'masks personal addresses' do
|
||||
described_class.new(order).call
|
||||
|
||||
expect(order.bill_address.attributes).to include(
|
||||
'phone' => '',
|
||||
'address1' => '',
|
||||
'address2' => '',
|
||||
'city' => '',
|
||||
@@ -23,16 +46,20 @@ RSpec.describe Orders::MaskDataService do
|
||||
)
|
||||
|
||||
expect(order.ship_address.attributes).to include(
|
||||
'phone' => '',
|
||||
'address1' => '',
|
||||
'address2' => '',
|
||||
'city' => '',
|
||||
'zipcode' => '',
|
||||
'state_id' => nil
|
||||
)
|
||||
|
||||
expect(order.email).to eq('HIDDEN')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when displaying customer names is allowed' do
|
||||
before { distributor.show_customer_names_to_suppliers = true }
|
||||
|
||||
include_examples "mask customer contact data"
|
||||
include_examples "mask customer address"
|
||||
|
||||
it 'does not mask the full name' do
|
||||
described_class.new(order).call
|
||||
@@ -51,42 +78,9 @@ RSpec.describe Orders::MaskDataService do
|
||||
context 'when displaying customer names is not allowed' do
|
||||
before { distributor.show_customer_names_to_suppliers = false }
|
||||
|
||||
it 'masks personal addresses and email' do
|
||||
described_class.new(order).call
|
||||
|
||||
expect(order.bill_address.attributes).to include(
|
||||
'phone' => '',
|
||||
'address1' => '',
|
||||
'address2' => '',
|
||||
'city' => '',
|
||||
'zipcode' => '',
|
||||
'state_id' => nil
|
||||
)
|
||||
|
||||
expect(order.ship_address.attributes).to include(
|
||||
'phone' => '',
|
||||
'address1' => '',
|
||||
'address2' => '',
|
||||
'city' => '',
|
||||
'zipcode' => '',
|
||||
'state_id' => nil
|
||||
)
|
||||
|
||||
expect(order.email).to eq('HIDDEN')
|
||||
end
|
||||
|
||||
it 'masks the full name' do
|
||||
described_class.new(order).call
|
||||
|
||||
expect(order.bill_address.attributes).to include(
|
||||
'firstname' => 'HIDDEN',
|
||||
'lastname' => ''
|
||||
)
|
||||
expect(order.ship_address.attributes).to include(
|
||||
'firstname' => 'HIDDEN',
|
||||
'lastname' => ''
|
||||
)
|
||||
end
|
||||
include_examples "mask customer name"
|
||||
include_examples "mask customer contact data"
|
||||
include_examples "mask customer address"
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user