Browse Source

Add tests

Renée Kooi 7 years ago
parent
commit
4d24611898
1 changed files with 54 additions and 3 deletions
  1. 54 3
      src/plugins/ThumbnailGenerator/index.test.js

+ 54 - 3
src/plugins/ThumbnailGenerator/index.test.js

@@ -1,5 +1,6 @@
 const ThumbnailGeneratorPlugin = require('./index')
 const Plugin = require('../../core/Plugin')
+const emitter = require('namespace-emitter')
 
 const delay = duration => new Promise(resolve => setTimeout(resolve, duration))
 
@@ -27,7 +28,7 @@ describe('uploader/ThumbnailGeneratorPlugin', () => {
       plugin.addToQueue = jest.fn()
       plugin.install()
 
-      expect(core.on).toHaveBeenCalledTimes(1)
+      expect(core.on).toHaveBeenCalledTimes(2)
       expect(core.on).toHaveBeenCalledWith('file-added', plugin.addToQueue)
     })
   })
@@ -43,11 +44,11 @@ describe('uploader/ThumbnailGeneratorPlugin', () => {
       plugin.addToQueue = jest.fn()
       plugin.install()
 
-      expect(core.on).toHaveBeenCalledTimes(1)
+      expect(core.on).toHaveBeenCalledTimes(2)
 
       plugin.uninstall()
 
-      expect(core.off).toHaveBeenCalledTimes(1)
+      expect(core.off).toHaveBeenCalledTimes(2)
       expect(core.off).toHaveBeenCalledWith('file-added', plugin.addToQueue)
     })
   })
@@ -347,4 +348,54 @@ describe('uploader/ThumbnailGeneratorPlugin', () => {
       })
     })
   })
+
+  describe('onRestored', () => {
+    it('should enqueue restored files', () => {
+      const files = {
+        a: { preview: 'blob:abc', isRestored: true },
+        b: { preview: 'blob:def' },
+        c: { preview: 'blob:xyz', isRestored: true }
+      }
+      const core = Object.assign(emitter(), {
+        getState () {
+          return { files }
+        },
+        getFile (id) {
+          return files[id]
+        }
+      })
+
+      const plugin = new ThumbnailGeneratorPlugin(core)
+      plugin.addToQueue = jest.fn()
+      plugin.install()
+
+      core.emit('restored')
+
+      expect(plugin.addToQueue).toHaveBeenCalledTimes(2)
+      expect(plugin.addToQueue).toHaveBeenCalledWith(files.a)
+      expect(plugin.addToQueue).toHaveBeenCalledWith(files.c)
+    })
+
+    it('should not regenerate thumbnail for remote files', () => {
+      const files = {
+        a: { preview: 'http://abc', isRestored: true }
+      }
+      const core = Object.assign(emitter(), {
+        getState () {
+          return { files }
+        },
+        getFile (id) {
+          return files[id]
+        }
+      })
+
+      const plugin = new ThumbnailGeneratorPlugin(core)
+      plugin.addToQueue = jest.fn()
+      plugin.install()
+
+      core.emit('restored')
+
+      expect(plugin.addToQueue).not.toHaveBeenCalled()
+    })
+  })
 })