fix shipping methods related tests

This commit is contained in:
Mohamed ABDELLANI
2023-02-27 15:56:14 +01:00
parent 13383316af
commit 25d8ce1737

View File

@@ -334,19 +334,21 @@ describe OrderCycleForm do
order_cycle.coordinator.users.first
)
expect(form.save).to be true
expect(order_cycle.distributor_payment_methods).to eq [distributor_payment_method_i]
expect{ form.save }.not_to change{
order_cycle.distributor_payment_methods.pluck(:id)
}.from([distributor_payment_method_i.id])
end
end
end
context "updating shipping methods" do
context "and it's valid" do
let(:distributor){ create(:distributor_enterprise) }
let(:shipping_method){ create(:shipping_method, distributors: [distributor]) }
let(:shipping_method2){ create(:shipping_method, distributors: [distributor]) }
let(:distributor_shipping_method){ shipping_method.distributor_shipping_methods.first }
let(:distributor_shipping_method2){ shipping_method2.distributor_shipping_methods.first }
let!(:distributor){ create(:distributor_enterprise) }
let!(:shipping_method){ create(:shipping_method, distributors: [distributor]) }
let!(:shipping_method2){ create(:shipping_method, distributors: [distributor]) }
let!(:distributor_shipping_method){ distributor.distributor_shipping_methods.first.id }
let!(:distributor_shipping_method2){ distributor.distributor_shipping_methods.second.id }
let(:supplier){ create(:supplier_enterprise) }
context "the submitter is a coordinator" do
it "saves the changes" do
@@ -354,12 +356,13 @@ describe OrderCycleForm do
form = OrderCycleForm.new(
order_cycle,
{ selected_distributor_shipping_method_ids: [distributor_shipping_method.id] },
{ selected_distributor_shipping_method_ids: [distributor_shipping_method] },
order_cycle.coordinator.users.first
)
expect(form.save).to be true
expect(order_cycle.distributor_shipping_methods).to eq [distributor_shipping_method]
expect{ form.save }.to change{ order_cycle.distributor_shipping_methods.pluck(:id) }
.from([distributor_shipping_method, distributor_shipping_method2])
.to([distributor_shipping_method])
end
end
context "submitter is a supplier" do
@@ -369,14 +372,13 @@ describe OrderCycleForm do
form = OrderCycleForm.new(
order_cycle,
{ selected_distributor_shipping_method_ids: [distributor_shipping_method.id] },
{ selected_distributor_shipping_method_ids: [distributor_shipping_method] },
supplier.users.first
)
expect(form).not_to receive(:attach_selected_distributor_shipping_methods)
expect(order_cycle.distributor_shipping_methods).to match_array [
distributor_shipping_method, distributor_shipping_method2
]
expect{ form.save }.not_to change{
order_cycle.distributor_shipping_methods.pluck(:id)
}.from([distributor_shipping_method, distributor_shipping_method2])
end
end
context "submitter is an admin" do
@@ -385,12 +387,13 @@ describe OrderCycleForm do
form = OrderCycleForm.new(
order_cycle,
{ selected_distributor_shipping_method_ids: [distributor_shipping_method.id] },
{ selected_distributor_shipping_method_ids: [distributor_shipping_method] },
create(:admin_user)
)
expect(form.save).to be true
expect(order_cycle.distributor_shipping_methods).to eq [distributor_shipping_method]
expect{ form.save }.to change{ order_cycle.distributor_shipping_methods.pluck(:id) }
.from([distributor_shipping_method, distributor_shipping_method2])
.to([distributor_shipping_method])
end
end
context "submitter is a distributor" do
@@ -400,29 +403,38 @@ describe OrderCycleForm do
form = OrderCycleForm.new(
order_cycle,
{ selected_distributor_shipping_method_ids: [distributor_shipping_method.id] },
{ selected_distributor_shipping_method_ids: [distributor_shipping_method] },
distributor.users.first
)
expect(form.save).to be true
expect(order_cycle.distributor_shipping_methods).to eq [distributor_shipping_method]
expect{ form.save }.to change{
order_cycle.distributor_shipping_methods.pluck(:id)
}.from([
distributor_shipping_method, distributor_shipping_method2
]).to([distributor_shipping_method])
end
end
context "can't update other distributors' shipping methods" do
let(:distributor2){ create(:distributor_enterprise) }
let!(:distributor2){ create(:distributor_enterprise) }
let!(:shipping_method3){ create(:shipping_method, distributors: [distributor2]) }
let!(:distributor_shipping_method3){
distributor2.distributor_shipping_methods.first.id
}
it "doesn't save the changes" do
order_cycle = create(:distributor_order_cycle,
distributors: [distributor, distributor2])
form = OrderCycleForm.new(
order_cycle,
{ selected_distributor_shipping_method_ids: [distributor_shipping_method.id] },
{ selected_distributor_shipping_method_ids: [distributor_shipping_method] },
distributor2.users.first
)
expect(form).not_to receive(:attach_selected_distributor_shipping_methods)
expect(order_cycle.distributor_shipping_methods).to match_array [
distributor_shipping_method, distributor_shipping_method2
expect{ form.save }.not_to change{
order_cycle.distributor_shipping_methods.pluck(:id)
}.from [
distributor_shipping_method, distributor_shipping_method2,
distributor_shipping_method3
]
end
end