|
@@ -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()
|
|
|
+ })
|
|
|
+ })
|
|
|
})
|