stream-chat-react-native-core 9.0.1 → 9.0.2-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js +1 -1
- package/lib/commonjs/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
- package/lib/commonjs/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/commonjs/mock-builders/DB/mock.js.map +1 -1
- package/lib/commonjs/mock-builders/api/channelMocks.js +38 -31
- package/lib/commonjs/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/api/deleteReaction.js.map +1 -1
- package/lib/commonjs/mock-builders/api/error.js.map +1 -1
- package/lib/commonjs/mock-builders/api/getOrCreateChannel.js.map +1 -1
- package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js +1 -1
- package/lib/commonjs/mock-builders/api/initiateClientWithChannels.js.map +1 -1
- package/lib/commonjs/mock-builders/api/queryChannels.js.map +1 -1
- package/lib/commonjs/mock-builders/api/queryMembers.js +12 -11
- package/lib/commonjs/mock-builders/api/queryMembers.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/commonjs/mock-builders/api/sendReaction.js.map +1 -1
- package/lib/commonjs/mock-builders/api/threadReplies.js.map +1 -1
- package/lib/commonjs/mock-builders/api/useMockedApis.js.map +1 -1
- package/lib/commonjs/mock-builders/api/utils.js.map +1 -1
- package/lib/commonjs/mock-builders/attachments.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelDeleted.js +3 -2
- package/lib/commonjs/mock-builders/event/channelDeleted.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelHidden.js +3 -2
- package/lib/commonjs/mock-builders/event/channelHidden.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelTruncated.js +3 -2
- package/lib/commonjs/mock-builders/event/channelTruncated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/channelUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/channelVisible.js +3 -2
- package/lib/commonjs/mock-builders/event/channelVisible.js.map +1 -1
- package/lib/commonjs/mock-builders/event/connectionChanged.js +3 -2
- package/lib/commonjs/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/commonjs/mock-builders/event/connectionRecovered.js +3 -2
- package/lib/commonjs/mock-builders/event/connectionRecovered.js.map +1 -1
- package/lib/commonjs/mock-builders/event/memberAdded.js +3 -2
- package/lib/commonjs/mock-builders/event/memberAdded.js.map +1 -1
- package/lib/commonjs/mock-builders/event/memberRemoved.js +3 -2
- package/lib/commonjs/mock-builders/event/memberRemoved.js.map +1 -1
- package/lib/commonjs/mock-builders/event/memberUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/memberUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageDeleted.js +3 -2
- package/lib/commonjs/mock-builders/event/messageDeleted.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageNew.js +3 -2
- package/lib/commonjs/mock-builders/event/messageNew.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageRead.js +3 -2
- package/lib/commonjs/mock-builders/event/messageRead.js.map +1 -1
- package/lib/commonjs/mock-builders/event/messageUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/messageUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationAddedToChannel.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationMarkRead.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationMarkRead.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationMarkUnread.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationMarkUnread.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationMessageNew.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationMessageNew.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationMutesUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js +3 -2
- package/lib/commonjs/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
- package/lib/commonjs/mock-builders/event/reactionDeleted.js +3 -2
- package/lib/commonjs/mock-builders/event/reactionDeleted.js.map +1 -1
- package/lib/commonjs/mock-builders/event/reactionNew.js +3 -2
- package/lib/commonjs/mock-builders/event/reactionNew.js.map +1 -1
- package/lib/commonjs/mock-builders/event/reactionUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/reactionUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/event/typing.js +3 -2
- package/lib/commonjs/mock-builders/event/typing.js.map +1 -1
- package/lib/commonjs/mock-builders/event/userPresence.js +3 -2
- package/lib/commonjs/mock-builders/event/userPresence.js.map +1 -1
- package/lib/commonjs/mock-builders/event/userUpdated.js +3 -2
- package/lib/commonjs/mock-builders/event/userUpdated.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/attachment.js +0 -3
- package/lib/commonjs/mock-builders/generator/attachment.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/channel.js +10 -12
- package/lib/commonjs/mock-builders/generator/channel.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/member.js +3 -2
- package/lib/commonjs/mock-builders/generator/member.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/message.js +12 -7
- package/lib/commonjs/mock-builders/generator/message.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/reaction.js +3 -2
- package/lib/commonjs/mock-builders/generator/reaction.js.map +1 -1
- package/lib/commonjs/mock-builders/generator/user.js +4 -3
- package/lib/commonjs/mock-builders/generator/user.js.map +1 -1
- package/lib/commonjs/mock-builders/mock.js +15 -11
- package/lib/commonjs/mock-builders/mock.js.map +1 -1
- package/lib/commonjs/store/apis/addPendingTask.js.map +1 -1
- package/lib/commonjs/store/apis/deleteMessage.js.map +1 -1
- package/lib/commonjs/store/apis/upsertDraft.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendOrderByClause.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/commonjs/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/commonjs/test-utils/BetterSqlite.js +11 -7
- package/lib/commonjs/test-utils/BetterSqlite.js.map +1 -1
- package/lib/commonjs/version.json +1 -1
- package/lib/module/components/Message/MessageItemView/utils/renderText.test.js +1 -1
- package/lib/module/components/Message/MessageItemView/utils/renderText.test.js.map +1 -1
- package/lib/module/components/MessageList/hooks/useMessageList.js.map +1 -1
- package/lib/module/mock-builders/DB/mock.js.map +1 -1
- package/lib/module/mock-builders/api/channelMocks.js +38 -31
- package/lib/module/mock-builders/api/channelMocks.js.map +1 -1
- package/lib/module/mock-builders/api/deleteMessage.js.map +1 -1
- package/lib/module/mock-builders/api/deleteReaction.js.map +1 -1
- package/lib/module/mock-builders/api/error.js.map +1 -1
- package/lib/module/mock-builders/api/getOrCreateChannel.js.map +1 -1
- package/lib/module/mock-builders/api/initiateClientWithChannels.js +1 -1
- package/lib/module/mock-builders/api/initiateClientWithChannels.js.map +1 -1
- package/lib/module/mock-builders/api/queryChannels.js.map +1 -1
- package/lib/module/mock-builders/api/queryMembers.js +12 -11
- package/lib/module/mock-builders/api/queryMembers.js.map +1 -1
- package/lib/module/mock-builders/api/sendMessage.js.map +1 -1
- package/lib/module/mock-builders/api/sendReaction.js.map +1 -1
- package/lib/module/mock-builders/api/threadReplies.js.map +1 -1
- package/lib/module/mock-builders/api/useMockedApis.js.map +1 -1
- package/lib/module/mock-builders/api/utils.js.map +1 -1
- package/lib/module/mock-builders/attachments.js.map +1 -1
- package/lib/module/mock-builders/event/channelDeleted.js +3 -2
- package/lib/module/mock-builders/event/channelDeleted.js.map +1 -1
- package/lib/module/mock-builders/event/channelHidden.js +3 -2
- package/lib/module/mock-builders/event/channelHidden.js.map +1 -1
- package/lib/module/mock-builders/event/channelTruncated.js +3 -2
- package/lib/module/mock-builders/event/channelTruncated.js.map +1 -1
- package/lib/module/mock-builders/event/channelUpdated.js +3 -2
- package/lib/module/mock-builders/event/channelUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/channelVisible.js +3 -2
- package/lib/module/mock-builders/event/channelVisible.js.map +1 -1
- package/lib/module/mock-builders/event/connectionChanged.js +3 -2
- package/lib/module/mock-builders/event/connectionChanged.js.map +1 -1
- package/lib/module/mock-builders/event/connectionRecovered.js +3 -2
- package/lib/module/mock-builders/event/connectionRecovered.js.map +1 -1
- package/lib/module/mock-builders/event/memberAdded.js +3 -2
- package/lib/module/mock-builders/event/memberAdded.js.map +1 -1
- package/lib/module/mock-builders/event/memberRemoved.js +3 -2
- package/lib/module/mock-builders/event/memberRemoved.js.map +1 -1
- package/lib/module/mock-builders/event/memberUpdated.js +3 -2
- package/lib/module/mock-builders/event/memberUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/messageDeleted.js +3 -2
- package/lib/module/mock-builders/event/messageDeleted.js.map +1 -1
- package/lib/module/mock-builders/event/messageNew.js +3 -2
- package/lib/module/mock-builders/event/messageNew.js.map +1 -1
- package/lib/module/mock-builders/event/messageRead.js +3 -2
- package/lib/module/mock-builders/event/messageRead.js.map +1 -1
- package/lib/module/mock-builders/event/messageUpdated.js +3 -2
- package/lib/module/mock-builders/event/messageUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/notificationAddedToChannel.js +3 -2
- package/lib/module/mock-builders/event/notificationAddedToChannel.js.map +1 -1
- package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js +3 -2
- package/lib/module/mock-builders/event/notificationChannelMutesUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/notificationMarkRead.js +3 -2
- package/lib/module/mock-builders/event/notificationMarkRead.js.map +1 -1
- package/lib/module/mock-builders/event/notificationMarkUnread.js +3 -2
- package/lib/module/mock-builders/event/notificationMarkUnread.js.map +1 -1
- package/lib/module/mock-builders/event/notificationMessageNew.js +3 -2
- package/lib/module/mock-builders/event/notificationMessageNew.js.map +1 -1
- package/lib/module/mock-builders/event/notificationMutesUpdated.js +3 -2
- package/lib/module/mock-builders/event/notificationMutesUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/notificationRemovedFromChannel.js +3 -2
- package/lib/module/mock-builders/event/notificationRemovedFromChannel.js.map +1 -1
- package/lib/module/mock-builders/event/reactionDeleted.js +3 -2
- package/lib/module/mock-builders/event/reactionDeleted.js.map +1 -1
- package/lib/module/mock-builders/event/reactionNew.js +3 -2
- package/lib/module/mock-builders/event/reactionNew.js.map +1 -1
- package/lib/module/mock-builders/event/reactionUpdated.js +3 -2
- package/lib/module/mock-builders/event/reactionUpdated.js.map +1 -1
- package/lib/module/mock-builders/event/typing.js +3 -2
- package/lib/module/mock-builders/event/typing.js.map +1 -1
- package/lib/module/mock-builders/event/userPresence.js +3 -2
- package/lib/module/mock-builders/event/userPresence.js.map +1 -1
- package/lib/module/mock-builders/event/userUpdated.js +3 -2
- package/lib/module/mock-builders/event/userUpdated.js.map +1 -1
- package/lib/module/mock-builders/generator/attachment.js +0 -3
- package/lib/module/mock-builders/generator/attachment.js.map +1 -1
- package/lib/module/mock-builders/generator/channel.js +10 -12
- package/lib/module/mock-builders/generator/channel.js.map +1 -1
- package/lib/module/mock-builders/generator/member.js +3 -2
- package/lib/module/mock-builders/generator/member.js.map +1 -1
- package/lib/module/mock-builders/generator/message.js +12 -7
- package/lib/module/mock-builders/generator/message.js.map +1 -1
- package/lib/module/mock-builders/generator/reaction.js +3 -2
- package/lib/module/mock-builders/generator/reaction.js.map +1 -1
- package/lib/module/mock-builders/generator/user.js +4 -3
- package/lib/module/mock-builders/generator/user.js.map +1 -1
- package/lib/module/mock-builders/mock.js +15 -11
- package/lib/module/mock-builders/mock.js.map +1 -1
- package/lib/module/store/apis/addPendingTask.js.map +1 -1
- package/lib/module/store/apis/deleteMessage.js.map +1 -1
- package/lib/module/store/apis/upsertDraft.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendOrderByClause.js.map +1 -1
- package/lib/module/store/sqlite-utils/appendWhereCluase.js.map +1 -1
- package/lib/module/store/sqlite-utils/createCreateTableQuery.js.map +1 -1
- package/lib/module/test-utils/BetterSqlite.js +11 -7
- package/lib/module/test-utils/BetterSqlite.js.map +1 -1
- package/lib/module/version.json +1 -1
- package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts +1 -1
- package/lib/typescript/components/UIComponents/SwipableWrapper.d.ts.map +1 -1
- package/lib/typescript/store/OfflineDB.d.ts +1 -1
- package/lib/typescript/store/OfflineDB.d.ts.map +1 -1
- package/lib/typescript/store/apis/addPendingTask.d.ts.map +1 -1
- package/lib/typescript/store/apis/deleteMessage.d.ts +2 -1
- package/lib/typescript/store/apis/deleteMessage.d.ts.map +1 -1
- package/lib/typescript/store/apis/upsertDraft.d.ts +1 -1
- package/lib/typescript/store/apis/upsertDraft.d.ts.map +1 -1
- package/lib/typescript/store/sqlite-utils/createCreateTableQuery.d.ts.map +1 -1
- package/lib/typescript/test-utils/BetterSqlite.d.ts +4 -3
- package/lib/typescript/test-utils/BetterSqlite.d.ts.map +1 -1
- package/package.json +5 -3
- package/src/__tests__/offline-support/{offline-feature.js → offline-feature.tsx} +282 -139
- package/src/__tests__/offline-support/{optimistic-update.js → optimistic-update.tsx} +154 -84
- package/src/components/Attachment/__tests__/{Attachment.test.js → Attachment.test.tsx} +12 -8
- package/src/components/Attachment/__tests__/{Gallery.test.js → Gallery.test.tsx} +10 -3
- package/src/components/Attachment/__tests__/{Giphy.test.js → Giphy.test.tsx} +48 -19
- package/src/components/Attachment/__tests__/{buildGallery.test.js → buildGallery.test.ts} +4 -2
- package/src/components/AutoCompleteInput/__tests__/{AutoCompleteInput.test.js → AutoCompleteInput.test.tsx} +21 -11
- package/src/components/Channel/__tests__/{Channel.test.js → Channel.test.tsx} +129 -89
- package/src/components/Channel/__tests__/{isAttachmentEqualHandler.test.js → isAttachmentEqualHandler.test.tsx} +25 -8
- package/src/components/Channel/__tests__/{ownCapabilities.test.js → ownCapabilities.test.tsx} +16 -12
- package/src/components/Channel/__tests__/{useMessageListPagination.test.js → useMessageListPagination.test.tsx} +105 -63
- package/src/components/ChannelList/__tests__/{ChannelList.test.js → ChannelList.test.tsx} +63 -29
- package/src/components/ChannelList/__tests__/{ChannelListView.test.js → ChannelListView.test.tsx} +30 -20
- package/src/components/ChannelList/hooks/__tests__/useChannelActionItems.test.tsx +6 -6
- package/src/components/ChannelList/hooks/__tests__/useChannelActionItemsById.test.tsx +2 -2
- package/src/components/ChannelList/hooks/listeners/__tests__/useChannelUpdated.test.tsx +17 -14
- package/src/components/ChannelPreview/__tests__/ChannelDetailsBottomSheet.test.tsx +14 -4
- package/src/components/ChannelPreview/__tests__/ChannelPreview.test.tsx +23 -12
- package/src/components/ChannelPreview/__tests__/{ChannelPreviewView.test.js → ChannelPreviewView.test.tsx} +9 -34
- package/src/components/ChannelPreview/__tests__/ChannelSwipableWrapper.test.tsx +4 -2
- package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayPresence.test.tsx +1 -1
- package/src/components/Chat/__tests__/{Chat.test.js → Chat.test.tsx} +37 -30
- package/src/components/ImageGallery/__tests__/ImageGallery.test.tsx +10 -14
- package/src/components/ImageGallery/__tests__/ImageGalleryFooter.test.tsx +3 -3
- package/src/components/ImageGallery/__tests__/ImageGalleryGrid.test.tsx +5 -4
- package/src/components/ImageGallery/__tests__/ImageGalleryHeader.test.tsx +7 -6
- package/src/components/ImageGallery/components/__tests__/ImageGalleryHeader.test.tsx +9 -13
- package/src/components/Message/MessageItemView/__tests__/{Message.test.js → Message.test.tsx} +20 -11
- package/src/components/Message/MessageItemView/__tests__/{MessageAuthor.test.js → MessageAuthor.test.tsx} +10 -12
- package/src/components/Message/MessageItemView/__tests__/{MessageContent.test.js → MessageContent.test.tsx} +22 -12
- package/src/components/Message/MessageItemView/__tests__/{MessageItemView.test.js → MessageItemView.test.tsx} +11 -4
- package/src/components/Message/MessageItemView/__tests__/{MessagePinnedHeader.test.js → MessagePinnedHeader.test.tsx} +5 -3
- package/src/components/Message/MessageItemView/__tests__/{MessageReplies.test.js → MessageReplies.test.tsx} +15 -36
- package/src/components/Message/MessageItemView/__tests__/{MessageStatus.test.js → MessageStatus.test.tsx} +20 -10
- package/src/components/Message/MessageItemView/__tests__/MessageTextContainer.test.tsx +8 -8
- package/src/components/Message/MessageItemView/__tests__/{ReactionListBottom.test.js → ReactionListBottom.test.tsx} +19 -8
- package/src/components/Message/MessageItemView/__tests__/{ReactionListTop.test.js → ReactionListTop.test.tsx} +8 -4
- package/src/components/Message/MessageItemView/utils/renderText.test.tsx +2 -4
- package/src/components/Message/MessageItemView/utils/renderText.tsx +1 -1
- package/src/components/Message/hooks/__tests__/useShouldUseOverlayStyles.test.tsx +2 -2
- package/src/components/MessageInput/__tests__/{AttachButton.test.js → AttachButton.test.tsx} +14 -4
- package/src/components/MessageInput/__tests__/{AttachmentUploadPreviewList.test.js → AttachmentUploadPreviewList.test.tsx} +27 -8
- package/src/components/MessageInput/__tests__/{AudioAttachmentUploadPreview.test.js → AudioAttachmentUploadPreview.test.tsx} +18 -5
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewExpo.test.tsx +47 -15
- package/src/components/MessageInput/__tests__/AudioAttachmentUploadPreviewNative.test.tsx +57 -17
- package/src/components/MessageInput/__tests__/{InputButtons.test.js → InputButtons.test.tsx} +14 -4
- package/src/components/MessageInput/__tests__/{MessageComposer.test.js → MessageComposer.test.tsx} +28 -20
- package/src/components/MessageInput/__tests__/{SendButton.test.js → SendButton.test.tsx} +13 -4
- package/src/components/MessageInput/__tests__/{SendMessageDisallowedIndicator.test.js → SendMessageDisallowedIndicator.test.tsx} +47 -31
- package/src/components/MessageList/__tests__/{MessageList.test.js → MessageList.test.tsx} +31 -34
- package/src/components/MessageList/__tests__/{MessageSystem.test.js → MessageSystem.test.tsx} +13 -5
- package/src/components/MessageList/__tests__/{ScrollToBottomButton.test.js → ScrollToBottomButton.test.tsx} +8 -12
- package/src/components/MessageList/__tests__/{TypingIndicator.test.js → TypingIndicator.test.tsx} +6 -4
- package/src/components/MessageList/__tests__/useMessageList.test.tsx +2 -2
- package/src/components/MessageList/hooks/useMessageList.ts +1 -1
- package/src/components/MessageMenu/__tests__/MessageActionList.test.tsx +4 -1
- package/src/components/MessageMenu/__tests__/MessageActionListItem.test.tsx +1 -0
- package/src/components/MessageMenu/__tests__/MessageReactionPicker.test.tsx +6 -2
- package/src/components/MessageMenu/__tests__/MessageUserReactions.test.tsx +3 -3
- package/src/components/MessageMenu/__tests__/MessageUserReactionsAvatar.test.tsx +7 -3
- package/src/components/MessageMenu/__tests__/MessageUserReactionsItem.test.tsx +2 -1
- package/src/components/Thread/__tests__/{Thread.test.js → Thread.test.tsx} +41 -13
- package/src/components/Thread/__tests__/__snapshots__/{Thread.test.js.snap → Thread.test.tsx.snap} +0 -21
- package/src/components/UIComponents/SwipableWrapper.tsx +1 -1
- package/src/components/UIComponents/__tests__/SwipableWrapper.test.tsx +1 -1
- package/src/contexts/messageInputContext/__tests__/filePickers.test.tsx +31 -10
- package/src/contexts/messageInputContext/__tests__/sendMessage.test.tsx +24 -12
- package/src/contexts/overlayContext/__tests__/MessageOverlayHostLayer.test.tsx +2 -2
- package/src/hooks/__tests__/useTranslatedMessage.test.tsx +4 -4
- package/src/mock-builders/DB/mock.ts +1 -1
- package/src/mock-builders/api/channelMocks.tsx +39 -29
- package/src/mock-builders/api/deleteMessage.ts +21 -0
- package/src/mock-builders/api/deleteReaction.ts +23 -0
- package/src/mock-builders/api/{error.js → error.ts} +13 -5
- package/src/mock-builders/api/getOrCreateChannel.ts +22 -11
- package/src/mock-builders/api/{initiateClientWithChannels.js → initiateClientWithChannels.ts} +21 -3
- package/src/mock-builders/api/{queryChannels.js → queryChannels.ts} +2 -4
- package/src/mock-builders/api/{queryMembers.js → queryMembers.ts} +29 -27
- package/src/mock-builders/api/sendMessage.ts +25 -0
- package/src/mock-builders/api/sendReaction.ts +9 -5
- package/src/mock-builders/api/threadReplies.ts +18 -0
- package/src/mock-builders/api/{useMockedApis.js → useMockedApis.ts} +5 -4
- package/src/mock-builders/api/utils.ts +16 -0
- package/src/mock-builders/{attachments.js → attachments.ts} +24 -8
- package/src/mock-builders/event/channelDeleted.ts +12 -0
- package/src/mock-builders/event/channelHidden.ts +12 -0
- package/src/mock-builders/event/channelTruncated.ts +12 -0
- package/src/mock-builders/event/channelUpdated.ts +12 -0
- package/src/mock-builders/event/channelVisible.ts +12 -0
- package/src/mock-builders/event/connectionChanged.ts +11 -0
- package/src/mock-builders/event/connectionRecovered.ts +10 -0
- package/src/mock-builders/event/memberAdded.ts +19 -0
- package/src/mock-builders/event/memberRemoved.ts +18 -0
- package/src/mock-builders/event/memberUpdated.ts +18 -0
- package/src/mock-builders/event/messageDeleted.ts +23 -0
- package/src/mock-builders/event/messageNew.ts +26 -0
- package/src/mock-builders/event/messageRead.ts +23 -0
- package/src/mock-builders/event/messageUpdated.ts +23 -0
- package/src/mock-builders/event/notificationAddedToChannel.ts +12 -0
- package/src/mock-builders/event/notificationChannelMutesUpdated.ts +12 -0
- package/src/mock-builders/event/notificationMarkRead.ts +12 -0
- package/src/mock-builders/event/notificationMarkUnread.ts +22 -0
- package/src/mock-builders/event/notificationMessageNew.ts +12 -0
- package/src/mock-builders/event/notificationMutesUpdated.ts +16 -0
- package/src/mock-builders/event/notificationRemovedFromChannel.ts +12 -0
- package/src/mock-builders/event/reactionDeleted.ts +26 -0
- package/src/mock-builders/event/reactionNew.ts +26 -0
- package/src/mock-builders/event/reactionUpdated.ts +26 -0
- package/src/mock-builders/event/typing.ts +18 -0
- package/src/mock-builders/event/userPresence.ts +13 -0
- package/src/mock-builders/event/userUpdated.ts +13 -0
- package/src/mock-builders/generator/{attachment.js → attachment.ts} +17 -13
- package/src/mock-builders/generator/channel.ts +70 -39
- package/src/mock-builders/generator/member.ts +18 -0
- package/src/mock-builders/generator/message.ts +50 -0
- package/src/mock-builders/generator/reaction.ts +15 -0
- package/src/mock-builders/generator/{user.js → user.ts} +20 -16
- package/src/mock-builders/mock.ts +79 -0
- package/src/state-store/__tests__/audio-player.test.ts +3 -1
- package/src/state-store/__tests__/image-gallery-state-store.test.ts +31 -28
- package/src/state-store/__tests__/video-player-pool.test.ts +9 -9
- package/src/store/apis/__tests__/updatePendingTask.test.ts +17 -6
- package/src/store/apis/addPendingTask.ts +2 -1
- package/src/store/apis/deleteMessage.ts +2 -1
- package/src/store/apis/upsertDraft.ts +2 -2
- package/src/store/sqlite-utils/appendOrderByClause.ts +1 -1
- package/src/store/sqlite-utils/appendWhereCluase.ts +1 -1
- package/src/store/sqlite-utils/createCreateTableQuery.ts +7 -5
- package/src/test-utils/BetterSqlite.ts +38 -0
- package/src/utils/__tests__/{Streami18n.test.js → Streami18n.test.ts} +66 -31
- package/src/utils/__tests__/getResizedImageUrl.test.ts +10 -8
- package/src/utils/__tests__/{utils.test.js → utils.test.ts} +1 -1
- package/src/version.json +1 -1
- package/src/mock-builders/api/deleteMessage.js +0 -18
- package/src/mock-builders/api/deleteReaction.js +0 -19
- package/src/mock-builders/api/sendMessage.js +0 -18
- package/src/mock-builders/api/threadReplies.js +0 -16
- package/src/mock-builders/api/utils.js +0 -7
- package/src/mock-builders/event/channelDeleted.js +0 -7
- package/src/mock-builders/event/channelHidden.js +0 -7
- package/src/mock-builders/event/channelTruncated.js +0 -7
- package/src/mock-builders/event/channelUpdated.js +0 -7
- package/src/mock-builders/event/channelVisible.js +0 -7
- package/src/mock-builders/event/connectionChanged.js +0 -6
- package/src/mock-builders/event/connectionRecovered.js +0 -5
- package/src/mock-builders/event/memberAdded.js +0 -10
- package/src/mock-builders/event/memberRemoved.js +0 -9
- package/src/mock-builders/event/memberUpdated.js +0 -9
- package/src/mock-builders/event/messageDeleted.js +0 -8
- package/src/mock-builders/event/messageNew.js +0 -11
- package/src/mock-builders/event/messageRead.js +0 -15
- package/src/mock-builders/event/messageUpdated.js +0 -8
- package/src/mock-builders/event/notificationAddedToChannel.js +0 -7
- package/src/mock-builders/event/notificationChannelMutesUpdated.js +0 -7
- package/src/mock-builders/event/notificationMarkRead.js +0 -7
- package/src/mock-builders/event/notificationMarkUnread.js +0 -12
- package/src/mock-builders/event/notificationMessageNew.js +0 -7
- package/src/mock-builders/event/notificationMutesUpdated.js +0 -11
- package/src/mock-builders/event/notificationRemovedFromChannel.js +0 -7
- package/src/mock-builders/event/reactionDeleted.js +0 -9
- package/src/mock-builders/event/reactionNew.js +0 -9
- package/src/mock-builders/event/reactionUpdated.js +0 -9
- package/src/mock-builders/event/typing.js +0 -9
- package/src/mock-builders/event/userPresence.js +0 -8
- package/src/mock-builders/event/userUpdated.js +0 -8
- package/src/mock-builders/generator/member.js +0 -13
- package/src/mock-builders/generator/message.js +0 -32
- package/src/mock-builders/generator/reaction.js +0 -12
- package/src/mock-builders/mock.js +0 -57
- package/src/test-utils/BetterSqlite.js +0 -36
- /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessageAuthor.test.js.snap → MessageAuthor.test.tsx.snap} +0 -0
- /package/src/components/Message/MessageItemView/__tests__/__snapshots__/{MessagePinnedHeader.test.js.snap → MessagePinnedHeader.test.tsx.snap} +0 -0
- /package/src/components/MessageInput/__tests__/__snapshots__/{AttachButton.test.js.snap → AttachButton.test.tsx.snap} +0 -0
- /package/src/components/MessageInput/__tests__/__snapshots__/{SendButton.test.js.snap → SendButton.test.tsx.snap} +0 -0
- /package/src/components/MessageList/__tests__/__snapshots__/{MessageSystem.test.js.snap → MessageSystem.test.tsx.snap} +0 -0
- /package/src/components/MessageList/__tests__/__snapshots__/{ScrollToBottomButton.test.js.snap → ScrollToBottomButton.test.tsx.snap} +0 -0
- /package/src/components/MessageList/__tests__/__snapshots__/{TypingIndicator.test.js.snap → TypingIndicator.test.tsx.snap} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { type ComponentProps } from 'react';
|
|
2
2
|
import { Text } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { act, render } from '@testing-library/react-native';
|
|
@@ -8,6 +8,7 @@ import { WithComponents } from '../../../contexts/componentsContext/ComponentsCo
|
|
|
8
8
|
import type { ChannelActionItem } from '../../ChannelList/hooks/useChannelActionItems';
|
|
9
9
|
import * as ChannelActionItemsModule from '../../ChannelList/hooks/useChannelActionItems';
|
|
10
10
|
import * as ChannelActionsModule from '../../ChannelList/hooks/useChannelActions';
|
|
11
|
+
import { SwipableWrapper } from '../../UIComponents/SwipableWrapper';
|
|
11
12
|
import { ChannelSwipableWrapper } from '../ChannelSwipableWrapper';
|
|
12
13
|
import * as UseIsChannelMutedModule from '../hooks/useIsChannelMuted';
|
|
13
14
|
|
|
@@ -60,7 +61,8 @@ jest.mock('../../UIComponents/SwipableWrapper', () => ({
|
|
|
60
61
|
rightActionsProbe.items = items;
|
|
61
62
|
return null;
|
|
62
63
|
},
|
|
63
|
-
SwipableWrapper: (...args:
|
|
64
|
+
SwipableWrapper: (...args: [ComponentProps<typeof SwipableWrapper>]) =>
|
|
65
|
+
mockSwipableWrapper(...args),
|
|
64
66
|
}));
|
|
65
67
|
|
|
66
68
|
describe('ChannelSwipableWrapper', () => {
|
package/src/components/ChannelPreview/hooks/__tests__/useChannelPreviewDisplayPresence.test.tsx
CHANGED
|
@@ -19,7 +19,7 @@ describe('useChannelPreviewDisplayPresence', () => {
|
|
|
19
19
|
chatClient = await getTestClientWithUser({
|
|
20
20
|
id: currentUserId,
|
|
21
21
|
userID: currentUserId,
|
|
22
|
-
});
|
|
22
|
+
} as unknown as Parameters<typeof getTestClientWithUser>[0]);
|
|
23
23
|
|
|
24
24
|
// Create mock channel
|
|
25
25
|
mockChannel = {
|
|
@@ -5,8 +5,10 @@ import NetInfo from '@react-native-community/netinfo';
|
|
|
5
5
|
|
|
6
6
|
import { act, cleanup, render, waitFor } from '@testing-library/react-native';
|
|
7
7
|
|
|
8
|
+
import type { ChatContextValue } from '../../../contexts/chatContext/ChatContext';
|
|
8
9
|
import { useChatContext } from '../../../contexts/chatContext/ChatContext';
|
|
9
10
|
|
|
11
|
+
import type { TranslationContextValue } from '../../../contexts/translationContext/TranslationContext';
|
|
10
12
|
import { useTranslationContext } from '../../../contexts/translationContext/TranslationContext';
|
|
11
13
|
import dispatchConnectionChangedEvent from '../../../mock-builders/event/connectionChanged';
|
|
12
14
|
import dispatchConnectionRecoveredEvent from '../../../mock-builders/event/connectionRecovered';
|
|
@@ -14,12 +16,12 @@ import { getTestClient, getTestClientWithUser, setUser } from '../../../mock-bui
|
|
|
14
16
|
import { Streami18n } from '../../../utils/i18n/Streami18n';
|
|
15
17
|
import { Chat } from '../Chat';
|
|
16
18
|
|
|
17
|
-
const ChatContextConsumer = ({ fn }) => {
|
|
19
|
+
const ChatContextConsumer = ({ fn }: { fn: (ctx: ChatContextValue) => void }) => {
|
|
18
20
|
fn(useChatContext());
|
|
19
21
|
return <View testID='children' />;
|
|
20
22
|
};
|
|
21
23
|
|
|
22
|
-
const TranslationContextConsumer = ({ fn }) => {
|
|
24
|
+
const TranslationContextConsumer = ({ fn }: { fn: (ctx: TranslationContextValue) => void }) => {
|
|
23
25
|
fn(useTranslationContext());
|
|
24
26
|
return <View testID='children' />;
|
|
25
27
|
};
|
|
@@ -42,7 +44,7 @@ describe('Chat', () => {
|
|
|
42
44
|
});
|
|
43
45
|
|
|
44
46
|
it('listens and updates state on a connection changed event', async () => {
|
|
45
|
-
let context;
|
|
47
|
+
let context: ChatContextValue = {} as ChatContextValue;
|
|
46
48
|
|
|
47
49
|
render(
|
|
48
50
|
<Chat client={chatClient}>
|
|
@@ -65,7 +67,7 @@ describe('Chat', () => {
|
|
|
65
67
|
});
|
|
66
68
|
|
|
67
69
|
it('listens and updates state on a connection recovered event', async () => {
|
|
68
|
-
let context;
|
|
70
|
+
let context: ChatContextValue = {} as ChatContextValue;
|
|
69
71
|
|
|
70
72
|
render(
|
|
71
73
|
<Chat client={chatClient}>
|
|
@@ -87,7 +89,7 @@ describe('ChatContext', () => {
|
|
|
87
89
|
afterEach(cleanup);
|
|
88
90
|
const chatClient = getTestClient();
|
|
89
91
|
it('exposes the chat context', async () => {
|
|
90
|
-
let context;
|
|
92
|
+
let context: ChatContextValue = {} as ChatContextValue;
|
|
91
93
|
|
|
92
94
|
render(
|
|
93
95
|
<Chat client={chatClient}>
|
|
@@ -109,7 +111,7 @@ describe('ChatContext', () => {
|
|
|
109
111
|
});
|
|
110
112
|
|
|
111
113
|
it('calls setActiveChannel to set a new channel in context', async () => {
|
|
112
|
-
let context;
|
|
114
|
+
let context: ChatContextValue = {} as ChatContextValue;
|
|
113
115
|
|
|
114
116
|
render(
|
|
115
117
|
<Chat client={chatClient}>
|
|
@@ -124,7 +126,11 @@ describe('ChatContext', () => {
|
|
|
124
126
|
const channel = { cid: 'cid', id: 'cid', query: jest.fn() };
|
|
125
127
|
|
|
126
128
|
await waitFor(() => expect(context.channel).toBeUndefined());
|
|
127
|
-
act(() =>
|
|
129
|
+
act(() =>
|
|
130
|
+
context.setActiveChannel(
|
|
131
|
+
channel as unknown as Parameters<typeof context.setActiveChannel>[0],
|
|
132
|
+
),
|
|
133
|
+
);
|
|
128
134
|
|
|
129
135
|
await waitFor(() => expect(context.channel).toStrictEqual(channel));
|
|
130
136
|
});
|
|
@@ -138,7 +144,7 @@ describe('TranslationContext', () => {
|
|
|
138
144
|
|
|
139
145
|
const chatClient = getTestClient();
|
|
140
146
|
it('exposes the translation context', async () => {
|
|
141
|
-
let context;
|
|
147
|
+
let context: TranslationContextValue = {} as TranslationContextValue;
|
|
142
148
|
|
|
143
149
|
render(
|
|
144
150
|
<Chat client={chatClient}>
|
|
@@ -158,12 +164,12 @@ describe('TranslationContext', () => {
|
|
|
158
164
|
});
|
|
159
165
|
|
|
160
166
|
it('uses the i18nInstance provided in props', async () => {
|
|
161
|
-
let context;
|
|
167
|
+
let context: TranslationContextValue = {} as TranslationContextValue;
|
|
162
168
|
const i18nInstance = new Streami18n();
|
|
163
169
|
const { t, tDateTimeParser } = await i18nInstance.getTranslators();
|
|
164
170
|
|
|
165
|
-
i18nInstance.t = () => 't';
|
|
166
|
-
i18nInstance.tDateTimeParser = () => 'tDateTimeParser';
|
|
171
|
+
i18nInstance.t = (() => 't') as typeof i18nInstance.t;
|
|
172
|
+
i18nInstance.tDateTimeParser = (() => 'tDateTimeParser') as typeof i18nInstance.tDateTimeParser;
|
|
167
173
|
|
|
168
174
|
render(
|
|
169
175
|
<Chat client={chatClient} i18nInstance={i18nInstance}>
|
|
@@ -184,11 +190,11 @@ describe('TranslationContext', () => {
|
|
|
184
190
|
});
|
|
185
191
|
|
|
186
192
|
it('updates the context when props change', async () => {
|
|
187
|
-
let context;
|
|
193
|
+
let context: TranslationContextValue = {} as TranslationContextValue;
|
|
188
194
|
const i18nInstance = new Streami18n();
|
|
189
195
|
|
|
190
|
-
i18nInstance.t = () => 't';
|
|
191
|
-
i18nInstance.tDateTimeParser = () => 'tDateTimeParser';
|
|
196
|
+
i18nInstance.t = (() => 't') as typeof i18nInstance.t;
|
|
197
|
+
i18nInstance.tDateTimeParser = (() => 'tDateTimeParser') as typeof i18nInstance.tDateTimeParser;
|
|
192
198
|
|
|
193
199
|
const { rerender } = render(
|
|
194
200
|
<Chat client={chatClient} i18nInstance={i18nInstance}>
|
|
@@ -207,8 +213,9 @@ describe('TranslationContext', () => {
|
|
|
207
213
|
|
|
208
214
|
const newI18nInstance = new Streami18n();
|
|
209
215
|
|
|
210
|
-
newI18nInstance.t = () => 'newT';
|
|
211
|
-
newI18nInstance.tDateTimeParser = () =>
|
|
216
|
+
newI18nInstance.t = (() => 'newT') as typeof newI18nInstance.t;
|
|
217
|
+
newI18nInstance.tDateTimeParser = (() =>
|
|
218
|
+
'newtDateTimeParser') as typeof newI18nInstance.tDateTimeParser;
|
|
212
219
|
|
|
213
220
|
rerender(
|
|
214
221
|
<Chat client={chatClient} i18nInstance={newI18nInstance}>
|
|
@@ -233,15 +240,15 @@ describe('TranslationContext', () => {
|
|
|
233
240
|
// initial mount and render
|
|
234
241
|
const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport key={1} />);
|
|
235
242
|
|
|
236
|
-
let unsubscribeSpy;
|
|
237
|
-
let listenersAfterInitialMount;
|
|
238
|
-
const initSpy = jest.spyOn(chatClientWithUser.offlineDb
|
|
243
|
+
let unsubscribeSpy: jest.SpyInstance | undefined;
|
|
244
|
+
let listenersAfterInitialMount: Array<unknown> = [];
|
|
245
|
+
const initSpy = jest.spyOn(chatClientWithUser.offlineDb!.syncManager, 'init');
|
|
239
246
|
|
|
240
247
|
await waitFor(() => {
|
|
241
248
|
// the unsubscribe fn changes during init(), so we keep a reference to the spy
|
|
242
249
|
unsubscribeSpy = jest.spyOn(
|
|
243
|
-
chatClientWithUser.offlineDb
|
|
244
|
-
'unsubscribe',
|
|
250
|
+
chatClientWithUser.offlineDb!.syncManager.connectionChangedListener as object,
|
|
251
|
+
'unsubscribe' as never,
|
|
245
252
|
);
|
|
246
253
|
listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
|
|
247
254
|
});
|
|
@@ -264,15 +271,15 @@ describe('TranslationContext', () => {
|
|
|
264
271
|
// initial render
|
|
265
272
|
const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
|
|
266
273
|
|
|
267
|
-
let unsubscribeSpy;
|
|
268
|
-
let listenersAfterInitialMount;
|
|
269
|
-
const initSpy = jest.spyOn(chatClientWithUser.offlineDb
|
|
274
|
+
let unsubscribeSpy: jest.SpyInstance | undefined;
|
|
275
|
+
let listenersAfterInitialMount: Array<unknown> = [];
|
|
276
|
+
const initSpy = jest.spyOn(chatClientWithUser.offlineDb!.syncManager, 'init');
|
|
270
277
|
|
|
271
278
|
await waitFor(() => {
|
|
272
279
|
// the unsubscribe fn changes during init(), so we keep a reference to the spy
|
|
273
280
|
unsubscribeSpy = jest.spyOn(
|
|
274
|
-
chatClientWithUser.offlineDb
|
|
275
|
-
'unsubscribe',
|
|
281
|
+
chatClientWithUser.offlineDb!.syncManager.connectionChangedListener as object,
|
|
282
|
+
'unsubscribe' as never,
|
|
276
283
|
);
|
|
277
284
|
listenersAfterInitialMount = chatClientWithUser.listeners['connection.changed'];
|
|
278
285
|
});
|
|
@@ -299,14 +306,14 @@ describe('TranslationContext', () => {
|
|
|
299
306
|
// initial render
|
|
300
307
|
const { rerender } = render(<Chat client={chatClientWithUser} enableOfflineSupport />);
|
|
301
308
|
|
|
302
|
-
let unsubscribeSpy;
|
|
303
|
-
const initSpy = jest.spyOn(chatClientWithUser.offlineDb
|
|
309
|
+
let unsubscribeSpy: jest.SpyInstance | undefined;
|
|
310
|
+
const initSpy = jest.spyOn(chatClientWithUser.offlineDb!.syncManager, 'init');
|
|
304
311
|
|
|
305
312
|
await waitFor(() => {
|
|
306
313
|
// the unsubscribe fn changes during init(), so we keep a reference to the spy
|
|
307
314
|
unsubscribeSpy = jest.spyOn(
|
|
308
|
-
chatClientWithUser.offlineDb
|
|
309
|
-
'unsubscribe',
|
|
315
|
+
chatClientWithUser.offlineDb!.syncManager.connectionChangedListener as object,
|
|
316
|
+
'unsubscribe' as never,
|
|
310
317
|
);
|
|
311
318
|
});
|
|
312
319
|
|
|
@@ -88,15 +88,13 @@ describe('ImageGallery', () => {
|
|
|
88
88
|
it('render image gallery component', async () => {
|
|
89
89
|
render(
|
|
90
90
|
<ImageGalleryComponent
|
|
91
|
-
message={
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
}) as unknown as LocalMessage
|
|
99
|
-
}
|
|
91
|
+
message={generateMessage({
|
|
92
|
+
attachments: [
|
|
93
|
+
generateImageAttachment(),
|
|
94
|
+
generateGiphyAttachment(),
|
|
95
|
+
generateVideoAttachment({ type: 'video' }),
|
|
96
|
+
],
|
|
97
|
+
})}
|
|
100
98
|
/>,
|
|
101
99
|
);
|
|
102
100
|
|
|
@@ -111,11 +109,9 @@ describe('ImageGallery', () => {
|
|
|
111
109
|
|
|
112
110
|
render(
|
|
113
111
|
<ImageGalleryComponent
|
|
114
|
-
message={
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
}) as unknown as LocalMessage
|
|
118
|
-
}
|
|
112
|
+
message={generateMessage({
|
|
113
|
+
attachments: [generateImageAttachment()],
|
|
114
|
+
})}
|
|
119
115
|
/>,
|
|
120
116
|
);
|
|
121
117
|
|
|
@@ -4,7 +4,7 @@ import type { SharedValue } from 'react-native-reanimated';
|
|
|
4
4
|
|
|
5
5
|
import { render, screen, userEvent, waitFor } from '@testing-library/react-native';
|
|
6
6
|
|
|
7
|
-
import { Attachment
|
|
7
|
+
import { Attachment } from 'stream-chat';
|
|
8
8
|
|
|
9
9
|
import { WithComponents } from '../../../contexts/componentsContext/ComponentsContext';
|
|
10
10
|
import {
|
|
@@ -53,7 +53,7 @@ const ImageGalleryComponentVideo = (props: ImageGalleryProps) => {
|
|
|
53
53
|
messages: [
|
|
54
54
|
generateMessage({
|
|
55
55
|
attachments: [attachment],
|
|
56
|
-
})
|
|
56
|
+
}),
|
|
57
57
|
],
|
|
58
58
|
selectedAttachmentUrl: attachment.asset_url,
|
|
59
59
|
});
|
|
@@ -95,7 +95,7 @@ const ImageGalleryComponentImage = (
|
|
|
95
95
|
messages: [
|
|
96
96
|
generateMessage({
|
|
97
97
|
attachments: [props.attachment],
|
|
98
|
-
})
|
|
98
|
+
}),
|
|
99
99
|
],
|
|
100
100
|
selectedAttachmentUrl: props.attachment.image_url as string,
|
|
101
101
|
});
|
|
@@ -17,7 +17,8 @@ import {
|
|
|
17
17
|
} from '../../../mock-builders/generator/attachment';
|
|
18
18
|
import { generateMessage } from '../../../mock-builders/generator/message';
|
|
19
19
|
import { ImageGalleryStateStore } from '../../../state-store/image-gallery-state-store';
|
|
20
|
-
import { ImageGalleryGrid
|
|
20
|
+
import { ImageGalleryGrid } from '../components/ImageGrid';
|
|
21
|
+
import type { ImageGalleryGridProps } from '../components/types';
|
|
21
22
|
|
|
22
23
|
const ImageGalleryGridComponent = (
|
|
23
24
|
props: Partial<ImageGalleryGridProps> & { message: LocalMessage },
|
|
@@ -54,7 +55,7 @@ describe('ImageGalleryGrid', () => {
|
|
|
54
55
|
it('should render ImageGalleryGrid', async () => {
|
|
55
56
|
const message = generateMessage({
|
|
56
57
|
attachments: [generateImageAttachment(), generateImageAttachment()],
|
|
57
|
-
})
|
|
58
|
+
});
|
|
58
59
|
|
|
59
60
|
render(<ImageGalleryGridComponent message={message} />);
|
|
60
61
|
|
|
@@ -66,7 +67,7 @@ describe('ImageGalleryGrid', () => {
|
|
|
66
67
|
it('should render ImageGalleryGrid individual images', async () => {
|
|
67
68
|
const message = generateMessage({
|
|
68
69
|
attachments: [generateImageAttachment(), generateVideoAttachment({ type: 'video' })],
|
|
69
|
-
})
|
|
70
|
+
});
|
|
70
71
|
|
|
71
72
|
render(<ImageGalleryGridComponent message={message} />);
|
|
72
73
|
|
|
@@ -81,7 +82,7 @@ describe('ImageGalleryGrid', () => {
|
|
|
81
82
|
|
|
82
83
|
const message = generateMessage({
|
|
83
84
|
attachments: [generateImageAttachment(), generateVideoAttachment({ type: 'video' })],
|
|
84
|
-
})
|
|
85
|
+
});
|
|
85
86
|
|
|
86
87
|
render(<ImageGalleryGridComponent closeGridView={closeGridViewMock} message={message} />);
|
|
87
88
|
|
|
@@ -4,8 +4,6 @@ import type { SharedValue } from 'react-native-reanimated';
|
|
|
4
4
|
|
|
5
5
|
import { render, screen, userEvent, waitFor } from '@testing-library/react-native';
|
|
6
6
|
|
|
7
|
-
import { LocalMessage } from 'stream-chat';
|
|
8
|
-
|
|
9
7
|
import { ImageGalleryHeader as ImageGalleryHeaderDefault } from '../../../components/ImageGallery/components/ImageGalleryHeader';
|
|
10
8
|
import {
|
|
11
9
|
ImageGalleryContext,
|
|
@@ -36,7 +34,7 @@ const ImageGalleryComponent = (props: ImageGalleryProps) => {
|
|
|
36
34
|
const [imageGalleryStateStore] = useState(() => new ImageGalleryStateStore());
|
|
37
35
|
const attachment = generateImageAttachment();
|
|
38
36
|
imageGalleryStateStore.openImageGallery({
|
|
39
|
-
messages: [generateMessage({ attachments: [attachment] })
|
|
37
|
+
messages: [generateMessage({ attachments: [attachment] })],
|
|
40
38
|
selectedAttachmentUrl: attachment.image_url,
|
|
41
39
|
});
|
|
42
40
|
|
|
@@ -77,9 +75,12 @@ describe('ImageGalleryHeader', () => {
|
|
|
77
75
|
const setOverlayMock = jest.fn();
|
|
78
76
|
const user = userEvent.setup();
|
|
79
77
|
|
|
80
|
-
jest.spyOn(overlayContext, 'useOverlayContext').mockImplementation(
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
jest.spyOn(overlayContext, 'useOverlayContext').mockImplementation(
|
|
79
|
+
() =>
|
|
80
|
+
({
|
|
81
|
+
setOverlay: setOverlayMock,
|
|
82
|
+
}) as unknown as ReturnType<typeof overlayContext.useOverlayContext>,
|
|
83
|
+
);
|
|
83
84
|
|
|
84
85
|
render(<ImageGalleryComponent />);
|
|
85
86
|
|
|
@@ -3,8 +3,6 @@ import { SharedValue, useSharedValue } from 'react-native-reanimated';
|
|
|
3
3
|
|
|
4
4
|
import { render, renderHook, waitFor } from '@testing-library/react-native';
|
|
5
5
|
|
|
6
|
-
import { LocalMessage } from 'stream-chat';
|
|
7
|
-
|
|
8
6
|
import {
|
|
9
7
|
ImageGalleryContext,
|
|
10
8
|
ImageGalleryContextValue,
|
|
@@ -19,11 +17,14 @@ const ImageGalleryComponentWrapper = ({ children }: PropsWithChildren) => {
|
|
|
19
17
|
const initialImageGalleryStateStore = new ImageGalleryStateStore();
|
|
20
18
|
const attachment = generateImageAttachment();
|
|
21
19
|
initialImageGalleryStateStore.openImageGallery({
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
messages: [
|
|
21
|
+
generateMessage({
|
|
22
|
+
attachments: [attachment],
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
user: {} as any,
|
|
25
|
+
}),
|
|
26
|
+
],
|
|
27
|
+
selectedAttachmentUrl: (attachment as unknown as { url?: string }).url,
|
|
27
28
|
});
|
|
28
29
|
|
|
29
30
|
const [imageGalleryStateStore] = useState(initialImageGalleryStateStore);
|
|
@@ -49,12 +50,7 @@ it('doesnt fail if fromNow is not available on first render', async () => {
|
|
|
49
50
|
});
|
|
50
51
|
const { getAllByText } = render(
|
|
51
52
|
<ImageGalleryComponentWrapper>
|
|
52
|
-
<ImageGalleryHeader
|
|
53
|
-
// @ts-ignore
|
|
54
|
-
opacity={sharedValueOpacity}
|
|
55
|
-
// @ts-ignore
|
|
56
|
-
visible={sharedValueVisible}
|
|
57
|
-
/>
|
|
53
|
+
<ImageGalleryHeader opacity={sharedValueOpacity!} visible={sharedValueVisible!} />
|
|
58
54
|
</ImageGalleryComponentWrapper>,
|
|
59
55
|
);
|
|
60
56
|
await waitFor(() => {
|
package/src/components/Message/MessageItemView/__tests__/{Message.test.js → Message.test.tsx}
RENAMED
|
@@ -4,7 +4,9 @@ import { Pressable, Text, View } from 'react-native';
|
|
|
4
4
|
import { SafeAreaProvider } from 'react-native-safe-area-context';
|
|
5
5
|
|
|
6
6
|
import { cleanup, fireEvent, render, waitFor } from '@testing-library/react-native';
|
|
7
|
+
import type { Channel as ChannelType, StreamChat } from 'stream-chat';
|
|
7
8
|
|
|
9
|
+
import type { ComponentOverrides } from '../../../../contexts/componentsContext/ComponentsContext';
|
|
8
10
|
import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
|
|
9
11
|
import { useMessageContext } from '../../../../contexts/messageContext/MessageContext';
|
|
10
12
|
import { MessageListItemProvider } from '../../../../contexts/messageListItemContext/MessageListItemContext';
|
|
@@ -24,7 +26,7 @@ import { useShouldUseOverlayStyles } from '../../hooks/useShouldUseOverlayStyles
|
|
|
24
26
|
import { Message } from '../../Message';
|
|
25
27
|
import { MessageOverlayWrapper } from '../../MessageOverlayWrapper';
|
|
26
28
|
|
|
27
|
-
const OverlayStateText = ({ label }) => {
|
|
29
|
+
const OverlayStateText = ({ label }: { label: string }) => {
|
|
28
30
|
const shouldUseOverlayStyles = useShouldUseOverlayStyles();
|
|
29
31
|
|
|
30
32
|
return <Text>{`${label}:${shouldUseOverlayStyles ? 'overlay' : 'normal'}`}</Text>;
|
|
@@ -54,9 +56,14 @@ const CustomMessageItemView = () => (
|
|
|
54
56
|
);
|
|
55
57
|
|
|
56
58
|
describe('Message', () => {
|
|
57
|
-
let channel;
|
|
58
|
-
let chatClient;
|
|
59
|
-
let renderMessage
|
|
59
|
+
let channel: ChannelType;
|
|
60
|
+
let chatClient: StreamChat;
|
|
61
|
+
let renderMessage: (
|
|
62
|
+
options: Omit<React.ComponentProps<typeof Message>, 'groupStyles'> &
|
|
63
|
+
Partial<Pick<React.ComponentProps<typeof Message>, 'groupStyles'>>,
|
|
64
|
+
channelProps?: Partial<React.ComponentProps<typeof Channel>>,
|
|
65
|
+
componentOverrides?: ComponentOverrides,
|
|
66
|
+
) => ReturnType<typeof render>;
|
|
60
67
|
|
|
61
68
|
const user = generateUser({ id: 'id', name: 'name' });
|
|
62
69
|
const messages = [generateMessage({ user })];
|
|
@@ -70,19 +77,21 @@ describe('Message', () => {
|
|
|
70
77
|
|
|
71
78
|
chatClient = await getTestClientWithUser(user);
|
|
72
79
|
useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
|
|
73
|
-
channel = chatClient.channel('messaging', mockedChannel.id);
|
|
80
|
+
channel = chatClient.channel('messaging', mockedChannel.channel.id);
|
|
74
81
|
|
|
75
82
|
renderMessage = (options, channelProps, componentOverrides) =>
|
|
76
83
|
render(
|
|
77
84
|
<SafeAreaProvider>
|
|
78
85
|
<OverlayProvider>
|
|
79
86
|
<MessageListItemProvider
|
|
80
|
-
value={
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
87
|
+
value={
|
|
88
|
+
{
|
|
89
|
+
goToMessage: jest.fn(),
|
|
90
|
+
modifiedTheme: {},
|
|
91
|
+
onThreadSelect: jest.fn(),
|
|
92
|
+
setNativeScrollability: jest.fn(),
|
|
93
|
+
} as unknown as React.ComponentProps<typeof MessageListItemProvider>['value']
|
|
94
|
+
}
|
|
86
95
|
>
|
|
87
96
|
<Chat client={chatClient}>
|
|
88
97
|
{componentOverrides ? (
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
|
|
3
3
|
import { cleanup, render, screen, waitFor } from '@testing-library/react-native';
|
|
4
|
+
import type { StreamChat } from 'stream-chat';
|
|
4
5
|
|
|
6
|
+
import type { DeepPartial } from '../../../../contexts/themeContext/ThemeContext';
|
|
7
|
+
import type { Theme } from '../../../../contexts/themeContext/utils/theme';
|
|
5
8
|
import { defaultTheme } from '../../../../contexts/themeContext/utils/theme';
|
|
6
9
|
import {
|
|
7
10
|
generateMessage,
|
|
@@ -15,7 +18,7 @@ import { MessageAuthor } from '../MessageAuthor';
|
|
|
15
18
|
afterEach(cleanup);
|
|
16
19
|
|
|
17
20
|
describe('MessageAuthor', () => {
|
|
18
|
-
let chatClient;
|
|
21
|
+
let chatClient: StreamChat;
|
|
19
22
|
|
|
20
23
|
beforeEach(async () => {
|
|
21
24
|
chatClient = await getTestClientWithUser({ id: 'me' });
|
|
@@ -27,8 +30,8 @@ describe('MessageAuthor', () => {
|
|
|
27
30
|
user: { ...staticUser, image: undefined },
|
|
28
31
|
});
|
|
29
32
|
render(
|
|
30
|
-
<Chat client={chatClient} style={defaultTheme}>
|
|
31
|
-
<MessageAuthor
|
|
33
|
+
<Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
|
|
34
|
+
<MessageAuthor message={message} />
|
|
32
35
|
</Chat>,
|
|
33
36
|
);
|
|
34
37
|
|
|
@@ -37,8 +40,8 @@ describe('MessageAuthor', () => {
|
|
|
37
40
|
});
|
|
38
41
|
|
|
39
42
|
screen.rerender(
|
|
40
|
-
<Chat client={chatClient} style={defaultTheme}>
|
|
41
|
-
<MessageAuthor
|
|
43
|
+
<Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
|
|
44
|
+
<MessageAuthor message={message} />
|
|
42
45
|
</Chat>,
|
|
43
46
|
);
|
|
44
47
|
|
|
@@ -52,13 +55,8 @@ describe('MessageAuthor', () => {
|
|
|
52
55
|
});
|
|
53
56
|
|
|
54
57
|
screen.rerender(
|
|
55
|
-
<Chat client={chatClient} style={defaultTheme}>
|
|
56
|
-
<MessageAuthor
|
|
57
|
-
alignment='left'
|
|
58
|
-
groupStyles={['single']}
|
|
59
|
-
message={staticMessage}
|
|
60
|
-
showAvatar
|
|
61
|
-
/>
|
|
58
|
+
<Chat client={chatClient} style={defaultTheme as DeepPartial<Theme>}>
|
|
59
|
+
<MessageAuthor message={staticMessage} showAvatar />
|
|
62
60
|
</Chat>,
|
|
63
61
|
);
|
|
64
62
|
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import { StyleSheet, View } from 'react-native';
|
|
3
3
|
|
|
4
4
|
import { cleanup, render, screen, waitFor } from '@testing-library/react-native';
|
|
5
|
+
import type { Channel as ChannelType, StreamChat } from 'stream-chat';
|
|
5
6
|
|
|
6
7
|
import { ChannelsStateProvider } from '../../../../contexts/channelsStateContext/ChannelsStateContext';
|
|
7
8
|
import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
|
|
@@ -22,10 +23,16 @@ import { getTestClientWithUser } from '../../../../mock-builders/mock';
|
|
|
22
23
|
import { Channel } from '../../../Channel/Channel';
|
|
23
24
|
import { Chat } from '../../../Chat/Chat';
|
|
24
25
|
import { Message } from '../../Message';
|
|
26
|
+
import type { MessageFooterProps } from '../MessageFooter';
|
|
27
|
+
import type { MessageHeaderProps } from '../MessageHeader';
|
|
28
|
+
|
|
25
29
|
describe('MessageContent', () => {
|
|
26
|
-
let channel;
|
|
27
|
-
let chatClient;
|
|
28
|
-
let renderMessage
|
|
30
|
+
let channel: ChannelType;
|
|
31
|
+
let chatClient: StreamChat;
|
|
32
|
+
let renderMessage: (
|
|
33
|
+
options: Omit<React.ComponentProps<typeof Message>, 'groupStyles'> &
|
|
34
|
+
Partial<Pick<React.ComponentProps<typeof Message>, 'groupStyles'>>,
|
|
35
|
+
) => ReturnType<typeof render>;
|
|
29
36
|
|
|
30
37
|
const user = generateUser({ id: 'id', name: 'name' });
|
|
31
38
|
const messages = [generateMessage({ user })];
|
|
@@ -39,7 +46,7 @@ describe('MessageContent', () => {
|
|
|
39
46
|
|
|
40
47
|
chatClient = await getTestClientWithUser(user);
|
|
41
48
|
useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
|
|
42
|
-
channel = chatClient.channel('messaging', mockedChannel.id);
|
|
49
|
+
channel = chatClient.channel('messaging', mockedChannel.channel.id);
|
|
43
50
|
|
|
44
51
|
renderMessage = (options) =>
|
|
45
52
|
render(
|
|
@@ -112,7 +119,9 @@ describe('MessageContent', () => {
|
|
|
112
119
|
const user = generateUser();
|
|
113
120
|
const message = generateMessage({ user });
|
|
114
121
|
|
|
115
|
-
const ContextMessageHeader = (props) =>
|
|
122
|
+
const ContextMessageHeader = (props: MessageHeaderProps) => (
|
|
123
|
+
<View {...props} testID='message-header' />
|
|
124
|
+
);
|
|
116
125
|
|
|
117
126
|
render(
|
|
118
127
|
<ChannelsStateProvider>
|
|
@@ -136,7 +145,9 @@ describe('MessageContent', () => {
|
|
|
136
145
|
const user = generateUser();
|
|
137
146
|
const message = generateMessage({ user });
|
|
138
147
|
|
|
139
|
-
const ContextMessageFooter = (props) =>
|
|
148
|
+
const ContextMessageFooter = (props: MessageFooterProps) => (
|
|
149
|
+
<View {...props} testID='message-footer' />
|
|
150
|
+
);
|
|
140
151
|
|
|
141
152
|
render(
|
|
142
153
|
<ChannelsStateProvider>
|
|
@@ -272,10 +283,7 @@ describe('MessageContent', () => {
|
|
|
272
283
|
const user = generateUser();
|
|
273
284
|
const message = generateMessage({ user });
|
|
274
285
|
|
|
275
|
-
renderMessage({
|
|
276
|
-
message,
|
|
277
|
-
MessageFooter: null,
|
|
278
|
-
});
|
|
286
|
+
renderMessage({ message });
|
|
279
287
|
|
|
280
288
|
await waitFor(() => {
|
|
281
289
|
expect(screen.getByTestId('message-content-wrapper')).toBeTruthy();
|
|
@@ -441,7 +449,9 @@ describe('MessageContent', () => {
|
|
|
441
449
|
const user = generateUser();
|
|
442
450
|
const reaction = generateReaction();
|
|
443
451
|
const message = generateMessage({
|
|
444
|
-
reaction_groups: { [reaction.type]: reaction }
|
|
452
|
+
reaction_groups: { [reaction.type]: reaction } as unknown as ReturnType<
|
|
453
|
+
typeof generateMessage
|
|
454
|
+
>['reaction_groups'],
|
|
445
455
|
user,
|
|
446
456
|
});
|
|
447
457
|
|
|
@@ -449,7 +459,7 @@ describe('MessageContent', () => {
|
|
|
449
459
|
<ChannelsStateProvider>
|
|
450
460
|
<Chat client={chatClient}>
|
|
451
461
|
<Channel channel={channel}>
|
|
452
|
-
<Message groupStyles={['bottom']} message={message}
|
|
462
|
+
<Message groupStyles={['bottom']} message={message} />
|
|
453
463
|
</Channel>
|
|
454
464
|
</Chat>
|
|
455
465
|
</ChannelsStateProvider>,
|
|
@@ -4,8 +4,10 @@ import { StyleSheet, Text } from 'react-native';
|
|
|
4
4
|
import { GestureDetector } from 'react-native-gesture-handler';
|
|
5
5
|
|
|
6
6
|
import { cleanup, render, screen, waitFor } from '@testing-library/react-native';
|
|
7
|
+
import type { Channel as ChannelType, StreamChat } from 'stream-chat';
|
|
7
8
|
|
|
8
9
|
import { ChannelsStateProvider } from '../../../../contexts/channelsStateContext/ChannelsStateContext';
|
|
10
|
+
import type { ComponentOverrides } from '../../../../contexts/componentsContext/ComponentsContext';
|
|
9
11
|
import { WithComponents } from '../../../../contexts/componentsContext/ComponentsContext';
|
|
10
12
|
import { useMessageContext } from '../../../../contexts/messageContext/MessageContext';
|
|
11
13
|
|
|
@@ -25,9 +27,14 @@ import { Chat } from '../../../Chat/Chat';
|
|
|
25
27
|
import { Message } from '../../Message';
|
|
26
28
|
|
|
27
29
|
describe('MessageItemView', () => {
|
|
28
|
-
let channel;
|
|
29
|
-
let chatClient;
|
|
30
|
-
let renderMessage
|
|
30
|
+
let channel: ChannelType;
|
|
31
|
+
let chatClient: StreamChat;
|
|
32
|
+
let renderMessage: (
|
|
33
|
+
options: Omit<React.ComponentProps<typeof Message>, 'groupStyles'> &
|
|
34
|
+
Partial<Pick<React.ComponentProps<typeof Message>, 'groupStyles'>>,
|
|
35
|
+
channelProps?: Partial<React.ComponentProps<typeof Channel>>,
|
|
36
|
+
componentOverrides?: ComponentOverrides,
|
|
37
|
+
) => ReturnType<typeof render>;
|
|
31
38
|
|
|
32
39
|
const user = generateUser({ id: 'id', name: 'name' });
|
|
33
40
|
const messages = [generateMessage({ user })];
|
|
@@ -41,7 +48,7 @@ describe('MessageItemView', () => {
|
|
|
41
48
|
|
|
42
49
|
chatClient = await getTestClientWithUser(user);
|
|
43
50
|
useMockedApis(chatClient, [getOrCreateChannelApi(mockedChannel)]);
|
|
44
|
-
channel = chatClient.channel('messaging', mockedChannel.id);
|
|
51
|
+
channel = chatClient.channel('messaging', mockedChannel.channel.id);
|
|
45
52
|
|
|
46
53
|
renderMessage = (options, channelProps, componentOverrides) =>
|
|
47
54
|
render(
|