about summary refs log tree commit diff
path: root/__tests__
diff options
context:
space:
mode:
authordan <dan.abramov@gmail.com>2024-04-24 23:16:11 +0100
committerGitHub <noreply@github.com>2024-04-24 23:16:11 +0100
commit90c3ec87490497605dacb158668d3f8c07f4dcdc (patch)
tree38450e397ca0b4de68968c6107451f4c30f4be2d /__tests__
parent15055cb8c46f2b8bb09e3b7a28bbf1f8ec58fbe0 (diff)
downloadvoidsky-90c3ec87490497605dacb158668d3f8c07f4dcdc.tar.zst
Ignore image responses on non-200 status (#3693)
* Ignore image responses on non-200 status

* Fix tests
Diffstat (limited to '__tests__')
-rw-r--r--__tests__/lib/images.test.ts29
1 files changed, 27 insertions, 2 deletions
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()
+  })
 })