From d52b0560ff801cbb0833c2b982cae6bf6b3be43c Mon Sep 17 00:00:00 2001 From: Joffrey JAFFEUX Date: Mon, 10 Jul 2023 17:26:29 +0200 Subject: [PATCH] DEV: fixes flakey due to unordered array (#22515) The `message_bus_channels` given to `MessageBus.last_ids(*message_bus_channels)` is not ordered, as a result the expectation of the tests could fail, this test ensures we check the contain of the input instead of content+order. --- .../structured_channel_serializer_spec.rb | 47 ++++++++++--------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/plugins/chat/spec/serializer/chat/structured_channel_serializer_spec.rb b/plugins/chat/spec/serializer/chat/structured_channel_serializer_spec.rb index f3ce432c7a6..b44a30a423c 100644 --- a/plugins/chat/spec/serializer/chat/structured_channel_serializer_spec.rb +++ b/plugins/chat/spec/serializer/chat/structured_channel_serializer_spec.rb @@ -135,29 +135,32 @@ RSpec.describe Chat::StructuredChannelSerializer do it "calls MessageBus.last_ids with all the required channels for each public and DM chat chat channel" do MessageBus .expects(:last_ids) - .with( - Chat::Publisher::CHANNEL_METADATA_MESSAGE_BUS_CHANNEL, - Chat::Publisher::CHANNEL_EDITS_MESSAGE_BUS_CHANNEL, - Chat::Publisher::CHANNEL_STATUS_MESSAGE_BUS_CHANNEL, - Chat::Publisher::NEW_CHANNEL_MESSAGE_BUS_CHANNEL, - Chat::Publisher::CHANNEL_ARCHIVE_STATUS_MESSAGE_BUS_CHANNEL, - Chat::Publisher.user_tracking_state_message_bus_channel(user1.id), - Chat::Publisher.new_messages_message_bus_channel(channel1.id), - Chat::Publisher.new_mentions_message_bus_channel(channel1.id), - Chat::Publisher.kick_users_message_bus_channel(channel1.id), - Chat::Publisher.root_message_bus_channel(channel1.id), - Chat::Publisher.new_messages_message_bus_channel(channel2.id), - Chat::Publisher.new_mentions_message_bus_channel(channel2.id), - Chat::Publisher.kick_users_message_bus_channel(channel2.id), - Chat::Publisher.root_message_bus_channel(channel2.id), - Chat::Publisher.new_messages_message_bus_channel(channel3.id), - Chat::Publisher.new_mentions_message_bus_channel(channel3.id), - Chat::Publisher.root_message_bus_channel(channel3.id), - Chat::Publisher.new_messages_message_bus_channel(channel4.id), - Chat::Publisher.new_mentions_message_bus_channel(channel4.id), - Chat::Publisher.root_message_bus_channel(channel4.id), - ) + .with do |*args| + [ + Chat::Publisher::CHANNEL_METADATA_MESSAGE_BUS_CHANNEL, + Chat::Publisher::CHANNEL_EDITS_MESSAGE_BUS_CHANNEL, + Chat::Publisher::CHANNEL_STATUS_MESSAGE_BUS_CHANNEL, + Chat::Publisher::NEW_CHANNEL_MESSAGE_BUS_CHANNEL, + Chat::Publisher::CHANNEL_ARCHIVE_STATUS_MESSAGE_BUS_CHANNEL, + Chat::Publisher.user_tracking_state_message_bus_channel(user1.id), + Chat::Publisher.new_messages_message_bus_channel(channel1.id), + Chat::Publisher.new_mentions_message_bus_channel(channel1.id), + Chat::Publisher.kick_users_message_bus_channel(channel1.id), + Chat::Publisher.root_message_bus_channel(channel1.id), + Chat::Publisher.new_messages_message_bus_channel(channel2.id), + Chat::Publisher.new_mentions_message_bus_channel(channel2.id), + Chat::Publisher.kick_users_message_bus_channel(channel2.id), + Chat::Publisher.root_message_bus_channel(channel2.id), + Chat::Publisher.new_messages_message_bus_channel(channel3.id), + Chat::Publisher.new_mentions_message_bus_channel(channel3.id), + Chat::Publisher.root_message_bus_channel(channel3.id), + Chat::Publisher.new_messages_message_bus_channel(channel4.id), + Chat::Publisher.new_mentions_message_bus_channel(channel4.id), + Chat::Publisher.root_message_bus_channel(channel4.id), + ].to_set == args.to_set + end .returns({}) + described_class.new(fetch_data, scope: guardian).as_json end