From 90c3ec87490497605dacb158668d3f8c07f4dcdc Mon Sep 17 00:00:00 2001 From: dan Date: Wed, 24 Apr 2024 23:16:11 +0100 Subject: Ignore image responses on non-200 status (#3693) * Ignore image responses on non-200 status * Fix tests --- __tests__/lib/images.test.ts | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to '__tests__/lib/images.test.ts') diff --git a/__tests__/lib/images.test.ts b/__tests__/lib/images.test.ts index 38b722e2c..595f566c4 100644 --- a/__tests__/lib/images.test.ts +++ b/__tests__/lib/images.test.ts @@ -1,9 +1,10 @@ +import ImageResizer from '@bam.tech/react-native-image-resizer' +import RNFetchBlob from 'rn-fetch-blob' + import { downloadAndResize, DownloadAndResizeOpts, } from '../../src/lib/media/manip' -import ImageResizer from '@bam.tech/react-native-image-resizer' -import RNFetchBlob from 'rn-fetch-blob' describe('downloadAndResize', () => { const errorSpy = jest.spyOn(global.console, 'error') @@ -30,6 +31,7 @@ describe('downloadAndResize', () => { const mockedFetch = RNFetchBlob.fetch as jest.Mock mockedFetch.mockResolvedValueOnce({ path: jest.fn().mockReturnValue('file://downloaded-image.jpg'), + info: jest.fn().mockReturnValue({status: 200}), flush: jest.fn(), }) @@ -84,6 +86,7 @@ describe('downloadAndResize', () => { const mockedFetch = RNFetchBlob.fetch as jest.Mock mockedFetch.mockResolvedValueOnce({ path: jest.fn().mockReturnValue('file://downloaded-image'), + info: jest.fn().mockReturnValue({status: 200}), flush: jest.fn(), }) @@ -118,4 +121,26 @@ describe('downloadAndResize', () => { {mode: 'cover'}, ) }) + + it('should return undefined for non-200 response', async () => { + const mockedFetch = RNFetchBlob.fetch as jest.Mock + mockedFetch.mockResolvedValueOnce({ + path: jest.fn().mockReturnValue('file://downloaded-image'), + info: jest.fn().mockReturnValue({status: 400}), + flush: jest.fn(), + }) + + const opts: DownloadAndResizeOpts = { + uri: 'https://example.com/image', + width: 100, + height: 100, + maxSize: 500000, + mode: 'cover', + timeout: 10000, + } + + const result = await downloadAndResize(opts) + expect(errorSpy).not.toHaveBeenCalled() + expect(result).toBeUndefined() + }) }) -- cgit 1.4.1