From 8406b46fda5978a693a0428acd75d4eb72d2c838 Mon Sep 17 00:00:00 2001 From: Alex Demchenko Date: Sun, 29 Aug 2021 19:12:20 +0200 Subject: [PATCH] Fix link preview --- src/components/TextMessage/TextMessage.tsx | 11 ++++++++ .../__tests__/TextMessage.test.tsx | 28 +++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/src/components/TextMessage/TextMessage.tsx b/src/components/TextMessage/TextMessage.tsx index 2adf929..e5d5714 100644 --- a/src/components/TextMessage/TextMessage.tsx +++ b/src/components/TextMessage/TextMessage.tsx @@ -47,6 +47,12 @@ export const TextMessage = ({ user, }) + const hanleEmailPress = (email: string) => { + try { + Linking.openURL(`mailto:${email}`) + } catch {} + } + const handlePreviewDataFetched = (data: PreviewData) => { setPreviewData(data) onPreviewDataFetched?.({ message, previewData: data }) @@ -79,6 +85,11 @@ export const TextMessage = ({ { getPreviewDataMock.mockRestore() openUrlMock.mockRestore() }) + + it('renders and handles email press', async () => { + expect.assertions(1) + const email = 'john@flyer.chat' + const getPreviewDataMock = jest + .spyOn(utils, 'getPreviewData') + .mockResolvedValue({}) + const openUrlMock = jest.spyOn(Linking, 'openURL') + const { getByText } = render( + + ) + await waitFor(() => getByText(email)) + const text = getByText(email) + fireEvent.press(text) + expect(openUrlMock).toHaveBeenCalledWith(`mailto:${email}`) + getPreviewDataMock.mockRestore() + openUrlMock.mockRestore() + }) })