mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
Merge pull request #10309 from mkllnk/flaky-serializer-spec
Parse JSON to test ids separately and avoid flakiness
This commit is contained in:
@@ -2,31 +2,34 @@
|
||||
|
||||
require "spec_helper"
|
||||
|
||||
module Api
|
||||
module Admin
|
||||
describe OrderCycleSerializer do
|
||||
let(:order_cycle) { create(:order_cycle) }
|
||||
let(:serializer) {
|
||||
Api::Admin::OrderCycleSerializer.new order_cycle,
|
||||
current_user: order_cycle.coordinator.owner
|
||||
}
|
||||
describe Api::Admin::OrderCycleSerializer do
|
||||
let(:order_cycle) { create(:order_cycle) }
|
||||
let(:serializer) {
|
||||
Api::Admin::OrderCycleSerializer.new order_cycle,
|
||||
current_user: order_cycle.coordinator.owner
|
||||
}
|
||||
|
||||
it "serializes an order cycle" do
|
||||
expect(serializer.to_json).to include order_cycle.name
|
||||
end
|
||||
it "serializes an order cycle" do
|
||||
expect(serializer.to_json).to include order_cycle.name
|
||||
end
|
||||
|
||||
it "serializes the order cycle with exchanges" do
|
||||
expect(serializer.exchanges.to_json).to include "\"#{order_cycle.variants.first.id}\":true"
|
||||
end
|
||||
it "serializes the order cycle with exchanges" do
|
||||
expect(serializer.exchanges.to_json).to include "\"#{order_cycle.variants.first.id}\":true"
|
||||
end
|
||||
|
||||
it "serializes the order cycle with editable_variants_for_incoming_exchanges" do
|
||||
expect(serializer.editable_variants_for_incoming_exchanges.to_json).to include order_cycle.variants.first.id.to_s
|
||||
expect(serializer.editable_variants_for_incoming_exchanges.to_json).to_not include order_cycle.distributors.first.id.to_s
|
||||
end
|
||||
it "serializes the order cycle with editable_variants_for_incoming_exchanges" do
|
||||
distributor_ids = from_json(serializer.editable_variants_for_incoming_exchanges).keys
|
||||
variant_ids = from_json(serializer.editable_variants_for_incoming_exchanges).values.flatten
|
||||
|
||||
it "serializes the order cycle with editable_variants_for_outgoing_exchanges" do
|
||||
expect(serializer.editable_variants_for_outgoing_exchanges.to_json).to include order_cycle.variants.first.id.to_s
|
||||
end
|
||||
end
|
||||
expect(variant_ids).to include order_cycle.variants.first.id
|
||||
expect(distributor_ids).to_not include order_cycle.distributors.first.id.to_s
|
||||
end
|
||||
|
||||
it "serializes the order cycle with editable_variants_for_outgoing_exchanges" do
|
||||
expect(serializer.editable_variants_for_outgoing_exchanges.to_json).to include order_cycle.variants.first.id.to_s
|
||||
end
|
||||
|
||||
def from_json(serializer_result)
|
||||
JSON.parse(serializer_result.to_json)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user