소스 검색

Merge pull request #810 from mrbatista/enhancement/merge-meta

merge meta data when add file
Artur Paikin 7 년 전
부모
커밋
41d65c7f7d
2개의 변경된 파일27개의 추가작업 그리고 4개의 파일을 삭제
  1. 5 4
      src/core/Core.js
  2. 22 0
      src/core/Core.test.js

+ 5 - 4
src/core/Core.js

@@ -385,15 +385,16 @@ class Uppy {
 
     const fileID = Utils.generateFileID(file)
 
+    const meta = file.meta || {}
+    meta.name = fileName
+    meta.type = fileType
+
     const newFile = {
       source: file.source || '',
       id: fileID,
       name: fileName,
       extension: fileExtension || '',
-      meta: Object.assign({}, this.getState().meta, {
-        name: fileName,
-        type: fileType
-      }),
+      meta: Object.assign({}, this.getState().meta, meta),
       type: fileType,
       data: file.data,
       progress: {

+ 22 - 0
src/core/Core.test.js

@@ -850,6 +850,28 @@ describe('src/Core', () => {
         boo: 'moo'
       })
     })
+
+    it('should merge meta data when add file', () => {
+      const core = new Core({
+        meta: { foo2: 'bar2' }
+      })
+      core.addFile({
+        source: 'jest',
+        name: 'foo.jpg',
+        type: 'image/jpeg',
+        meta: {
+          resize: 5000
+        },
+        data: new File([sampleImage], { type: 'image/jpeg' })
+      })
+      const fileId = Object.keys(core.state.files)[0]
+      expect(core.state.files[fileId].meta).toEqual({
+        name: 'foo.jpg',
+        type: 'image/jpeg',
+        foo2: 'bar2',
+        resize: 5000
+      })
+    })
   })
 
   describe('progress', () => {