|
8 | 8 | import io.getstream.chat.java.models.Sort.Direction; |
9 | 9 | import io.getstream.chat.java.models.User; |
10 | 10 | import io.getstream.chat.java.models.User.ChannelMute; |
| 11 | +import io.getstream.chat.java.models.User.UserRequestObject; |
11 | 12 | import java.util.Arrays; |
| 13 | +import java.util.Calendar; |
12 | 14 | import java.util.Date; |
| 15 | +import java.util.GregorianCalendar; |
13 | 16 | import java.util.List; |
| 17 | +import java.util.TimeZone; |
14 | 18 | import java.util.stream.Collectors; |
15 | 19 | import org.apache.commons.lang3.RandomStringUtils; |
16 | 20 | import org.junit.jupiter.api.Assertions; |
@@ -640,4 +644,47 @@ void whenMarkingDeliveredWithLastDeliveredMessages_thenNoException() { |
640 | 644 | .latestDeliveredMessages(latestDeliveredMessages) |
641 | 645 | .request()); |
642 | 646 | } |
| 647 | + |
| 648 | + @DisplayName("hide_messages_before is set when adding member with hide_history_before") |
| 649 | + @Test |
| 650 | + void whenAddingMemberWithHideHistoryBefore_thenHideMessagesBeforeIsSet() { |
| 651 | + // Create new test user |
| 652 | + UserRequestObject newMember = |
| 653 | + UserRequestObject.builder() |
| 654 | + .id(RandomStringUtils.randomAlphabetic(10)) |
| 655 | + .name("New Member 1") |
| 656 | + .build(); |
| 657 | + |
| 658 | + Assertions.assertDoesNotThrow(() -> User.upsert().user(newMember).request()); |
| 659 | + |
| 660 | + // Create test channel |
| 661 | + Channel channel = Assertions.assertDoesNotThrow(() -> createRandomChannel()).getChannel(); |
| 662 | + |
| 663 | + // Create a static timestamp for hide_history_before |
| 664 | + Calendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC")); |
| 665 | + calendar.set(2025, Calendar.JANUARY, 15, 10, 30, 0); |
| 666 | + calendar.set(Calendar.MILLISECOND, 0); |
| 667 | + Date hideBeforeTimestamp = calendar.getTime(); |
| 668 | + |
| 669 | + // Add ember with hide_history_before |
| 670 | + Assertions.assertDoesNotThrow( |
| 671 | + () -> |
| 672 | + Channel.update(channel.getType(), channel.getId()) |
| 673 | + .addMember(newMember.getId()) |
| 674 | + .hideHistoryBefore(hideBeforeTimestamp) |
| 675 | + .request()); |
| 676 | + |
| 677 | + // Query channel with state for newMember - should have hide_messages_before set |
| 678 | + String userToken = User.createToken(newMember.getId(), null, null); |
| 679 | + ChannelGetResponse channelResponse = |
| 680 | + Assertions.assertDoesNotThrow( |
| 681 | + () -> |
| 682 | + Channel.getOrCreate(channel.getType(), channel.getId()) |
| 683 | + .state(true) |
| 684 | + .withUserToken(userToken) |
| 685 | + .request()); |
| 686 | + |
| 687 | + Assertions.assertNotNull(channelResponse.getHideMessagesBefore()); |
| 688 | + Assertions.assertEquals(hideBeforeTimestamp, channelResponse.getHideMessagesBefore()); |
| 689 | + } |
643 | 690 | } |
0 commit comments