Merge pull request #10309 from mkllnk/flaky-serializer-spec

Parse JSON to test ids separately and avoid flakiness
This commit is contained in:
Maikel
2023-01-24 14:32:20 +11:00
committed by GitHub

View File

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