mirror of
				https://github.com/strapi/strapi.git
				synced 2025-10-30 17:37:26 +00:00 
			
		
		
		
	test upload image
This commit is contained in:
		
							parent
							
								
									f0b67b9ec5
								
							
						
					
					
						commit
						09fdd984c1
					
				| @ -1,6 +1,6 @@ | |||||||
| 'use strict'; | 'use strict'; | ||||||
| 
 | 
 | ||||||
| const uploadService = require('../upload')({}); | const uploadService = require('../../upload')({}); | ||||||
| 
 | 
 | ||||||
| describe('Upload service', () => { | describe('Upload service', () => { | ||||||
|   beforeAll(() => { |   beforeAll(() => { | ||||||
							
								
								
									
										
											BIN
										
									
								
								packages/core/upload/server/services/__tests__/upload/image.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								packages/core/upload/server/services/__tests__/upload/image.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 6.5 KiB | 
| @ -0,0 +1,88 @@ | |||||||
|  | 'use strict'; | ||||||
|  | 
 | ||||||
|  | const path = require('path'); | ||||||
|  | const fs = require('fs'); | ||||||
|  | const fse = require('fs-extra'); | ||||||
|  | const _ = require('lodash'); | ||||||
|  | const uploadService = require('../../upload')({}); | ||||||
|  | 
 | ||||||
|  | const testFilePath = path.join(__dirname, './image.png'); | ||||||
|  | const tmpWorkingDirectory = path.join(__dirname, './tmp'); | ||||||
|  | 
 | ||||||
|  | function mockUploadProvider(uploadFunc, props) { | ||||||
|  |   const { responsiveDimensions = false } = props || {}; | ||||||
|  | 
 | ||||||
|  |   const default_config = { | ||||||
|  |     plugin: { | ||||||
|  |       upload: { | ||||||
|  |         breakpoints: { | ||||||
|  |           large: 1000, | ||||||
|  |           medium: 750, | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   }; | ||||||
|  | 
 | ||||||
|  |   global.strapi = { | ||||||
|  |     config: { | ||||||
|  |       get: (path, defaultValue) => _.get(default_config, path, defaultValue), | ||||||
|  |     }, | ||||||
|  |     plugins: { | ||||||
|  |       upload: { | ||||||
|  |         services: { | ||||||
|  |           provider: { | ||||||
|  |             upload: uploadFunc, | ||||||
|  |           }, | ||||||
|  |           upload: { | ||||||
|  |             getSettings: () => ({ responsiveDimensions }), | ||||||
|  |           }, | ||||||
|  |           'image-manipulation': require('../../image-manipulation')(), | ||||||
|  |         }, | ||||||
|  |       }, | ||||||
|  |     }, | ||||||
|  |   }; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const getFileData = () => ({ | ||||||
|  |   alternativeText: 'image.png', | ||||||
|  |   caption: 'image.png', | ||||||
|  |   ext: '.png', | ||||||
|  |   folder: null, | ||||||
|  |   folderPath: '/', | ||||||
|  |   getStream: () => fs.createReadStream(testFilePath), | ||||||
|  |   hash: 'image_d9b4f84424', | ||||||
|  |   height: 1000, | ||||||
|  |   size: 4, | ||||||
|  |   width: 1500, | ||||||
|  |   tmpWorkingDirectory, | ||||||
|  | }); | ||||||
|  | 
 | ||||||
|  | describe('Upload image', () => { | ||||||
|  |   beforeAll(async () => { | ||||||
|  |     // Create tmp directory if it does not exist
 | ||||||
|  |     await fse.mkdir(tmpWorkingDirectory); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   afterAll(async () => { | ||||||
|  |     // Remove tmp directory
 | ||||||
|  |     await fse.remove(tmpWorkingDirectory); | ||||||
|  |   }); | ||||||
|  |   test('Upload with thubmnail', async () => { | ||||||
|  |     let fileData = getFileData(); | ||||||
|  |     const upload = jest.fn(); | ||||||
|  |     mockUploadProvider(upload); | ||||||
|  | 
 | ||||||
|  |     await uploadService.uploadImage(fileData); | ||||||
|  |     expect(upload).toHaveBeenCalledTimes(2); | ||||||
|  |   }); | ||||||
|  | 
 | ||||||
|  |   test('Upload with responsive formats', async () => { | ||||||
|  |     let fileData = getFileData(); | ||||||
|  |     const upload = jest.fn(); | ||||||
|  |     mockUploadProvider(upload, { responsiveDimensions: true }); | ||||||
|  | 
 | ||||||
|  |     await uploadService.uploadImage(fileData); | ||||||
|  |     // 1 for the original image, 1 for thubnhail, 2 for the responsive formats
 | ||||||
|  |     expect(upload).toHaveBeenCalledTimes(4); | ||||||
|  |   }); | ||||||
|  | }); | ||||||
| @ -176,6 +176,8 @@ module.exports = ({ strapi }) => ({ | |||||||
|     // Store width and height of the original image
 |     // Store width and height of the original image
 | ||||||
|     const { width, height } = await getDimensions(fileData); |     const { width, height } = await getDimensions(fileData); | ||||||
| 
 | 
 | ||||||
|  |     // Make sure this is assigned before calling upload
 | ||||||
|  |     // That way it can mutate the width and height
 | ||||||
|     _.assign(fileData, { |     _.assign(fileData, { | ||||||
|       width, |       width, | ||||||
|       height, |       height, | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Marc-Roig
						Marc-Roig