core.spec.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. var test = require('tape')
  2. var Uppy = require('../src/core/Core.js')
  3. test('core', function (t) {
  4. const uppy = new Uppy()
  5. t.equal(typeof uppy, 'object', '`new Core()` should return an `object`')
  6. t.ok(uppy instanceof Uppy, '`uppy` should be an instance of `Uppy` core')
  7. t.end()
  8. })
  9. test('use plugins', function (t) {
  10. const SelecterPlugin = require('./mocks/plugin-selecter1.js')
  11. const uppy = new Uppy()
  12. uppy
  13. .use(SelecterPlugin)
  14. t.equal(Object.keys(uppy.plugins).length, 1, 'should add a plugin to the plugins stack')
  15. t.end()
  16. })
  17. test('noDuplicates', function (t) {
  18. const Selecter1Plugin = require('./mocks/plugin-selecter1.js')
  19. const uppyTwoSelecters = new Uppy()
  20. let err = ''
  21. try {
  22. uppyTwoSelecters
  23. .use(Selecter1Plugin)
  24. .use(Selecter1Plugin)
  25. .run()
  26. } catch (e) {
  27. err = e.message
  28. }
  29. t.equal(err, 'Uppy is currently limited to running one of every plugin. Share your use case with us over at https://github.com/transloadit/uppy/issues/ if you want us to reconsider.', 'should throw error on use of duplicate plugin')
  30. t.end()
  31. })
  32. test('autoProceed', function (t) {
  33. const Selecter1Plugin = require('./mocks/plugin-selecter1.js')
  34. const Selecter2Plugin = require('./mocks/plugin-selecter2.js')
  35. const uppyOneSelecter = new Uppy()
  36. uppyOneSelecter
  37. .use(Selecter1Plugin)
  38. .run()
  39. const uppyTwoSelecters = new Uppy()
  40. uppyTwoSelecters
  41. .use(Selecter1Plugin)
  42. .use(Selecter2Plugin)
  43. .run()
  44. t.equal(uppyOneSelecter.opts.autoProceed, true, 'should autoProceed if only one selecter is used')
  45. t.equal(uppyTwoSelecters.opts.autoProceed, false, 'should not autoProceed if more than one selecter is used')
  46. t.end()
  47. })