provider-manager.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. /* global jest:false, test:false, expect:false, describe:false, beforeEach:false */
  2. const providerManager = require('../../src/server/provider')
  3. let grantConfig
  4. let uppyOptions
  5. describe('Test Provider options', () => {
  6. beforeEach(() => {
  7. grantConfig = require('../../src/config/grant')()
  8. uppyOptions = require('../../src/standalone/helper').getUppyOptions()
  9. })
  10. test('adds provider options', () => {
  11. providerManager.addProviderOptions(uppyOptions, grantConfig)
  12. expect(grantConfig.dropbox.key).toBe('dropbox_key')
  13. expect(grantConfig.dropbox.secret).toBe('dropbox_secret')
  14. expect(grantConfig.google.key).toBe('google_key')
  15. expect(grantConfig.google.secret).toBe('google_secret')
  16. expect(grantConfig.instagram.key).toBe('instagram_key')
  17. expect(grantConfig.instagram.secret).toBe('instagram_secret')
  18. })
  19. test('does not add provider options if protocol and host are not set', () => {
  20. delete uppyOptions.server.host
  21. delete uppyOptions.server.protocol
  22. providerManager.addProviderOptions(uppyOptions, grantConfig)
  23. expect(grantConfig.dropbox.key).toBeUndefined()
  24. expect(grantConfig.dropbox.secret).toBeUndefined()
  25. expect(grantConfig.google.key).toBeUndefined()
  26. expect(grantConfig.google.secret).toBeUndefined()
  27. expect(grantConfig.instagram.key).toBeUndefined()
  28. expect(grantConfig.instagram.secret).toBeUndefined()
  29. })
  30. test('sets a master redirect uri, if oauthDomain is set', () => {
  31. uppyOptions.server.oauthDomain = 'domain.com'
  32. providerManager.addProviderOptions(uppyOptions, grantConfig)
  33. expect(grantConfig.dropbox.redirect_uri).toBe('http://domain.com/dropbox/redirect')
  34. expect(grantConfig.google.redirect_uri).toBe('http://domain.com/drive/redirect')
  35. expect(grantConfig.instagram.redirect_uri).toBe('http://domain.com/instagram/redirect')
  36. })
  37. })
  38. describe('Test Custom Provider options', () => {
  39. test('adds custom provider options', () => {
  40. const providers = providerManager.getDefaultProviders()
  41. providerManager.addCustomProviders({
  42. foo: {
  43. config: {
  44. key: 'foo_key',
  45. secret: 'foo_secret'
  46. },
  47. module: jest.mock()
  48. }
  49. }, providers, grantConfig)
  50. expect(grantConfig.foo.key).toBe('foo_key')
  51. expect(grantConfig.foo.secret).toBe('foo_secret')
  52. expect(providers.foo).toBeTruthy()
  53. })
  54. })