diff --git a/src/test/java/io/getstream/chat/java/ChannelTest.java b/src/test/java/io/getstream/chat/java/ChannelTest.java index 58bd9275..0f0df0d1 100644 --- a/src/test/java/io/getstream/chat/java/ChannelTest.java +++ b/src/test/java/io/getstream/chat/java/ChannelTest.java @@ -454,34 +454,37 @@ void whenMutingChannel_thenIsMuted() { .user(testUserRequestObject) .request()); Assertions.assertTrue(isChannelMutedForTestUser(channel.getType(), channel.getId())); - ChannelMember channelMember = - Assertions.assertDoesNotThrow( - () -> - Channel.queryMembers() - .id(channel.getId()) - .type(channel.getType()) - .request() - .getMembers() - .stream() - .filter(cm -> cm.getUserId().equals(testUserRequestObject.getId())) - .findFirst() - .get()); - Assertions.assertTrue(channelMember.getNotificationsMuted()); - - ChannelMember chm = - Assertions.assertDoesNotThrow( - () -> - Channel.queryMembers() - .filterCondition("notifications_muted", true) - .id(channel.getId()) - .type(channel.getType()) - .request() - .getMembers() - .stream() - .filter(cm -> cm.getUserId().equals(testUserRequestObject.getId())) - .findFirst() - .get()); - Assertions.assertTrue(chm.getNotificationsMuted()); + // API nodes cache offline users for a few seconds, so a member read can lag behind the mute + waitFor( + () -> + Assertions.assertDoesNotThrow( + () -> + Channel.queryMembers() + .id(channel.getId()) + .type(channel.getType()) + .request() + .getMembers() + .stream() + .filter(cm -> cm.getUserId().equals(testUserRequestObject.getId())) + .findFirst() + .get()) + .getNotificationsMuted()); + + waitFor( + () -> + Assertions.assertDoesNotThrow( + () -> + Channel.queryMembers() + .filterCondition("notifications_muted", true) + .id(channel.getId()) + .type(channel.getType()) + .request() + .getMembers() + .stream() + .filter(cm -> cm.getUserId().equals(testUserRequestObject.getId())) + .findFirst() + .get()) + .getNotificationsMuted()); } private boolean isChannelMutedForTestUser(String channelType, String channelId) {