credentials.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const request = require('supertest')
  2. const nock = require('nock')
  3. const tokenService = require('../../src/server/helpers/jwt')
  4. const { getServer } = require('../mockserver')
  5. const { nockZoomRevoke } = require('../fixtures/zoom')
  6. const { remoteZoomKey, remoteZoomSecret, remoteZoomVerificationToken } = require('../fixtures/zoom').expects
  7. const authServer = getServer({ COMPANION_ZOOM_KEYS_ENDPOINT: 'http://localhost:2111/zoom-keys' })
  8. const authData = {
  9. zoom: { accessToken: 'token value' },
  10. }
  11. const token = tokenService.generateEncryptedAuthToken(authData, process.env.COMPANION_SECRET)
  12. afterAll(() => {
  13. nock.cleanAll()
  14. nock.restore()
  15. })
  16. describe('providers requests with remote oauth keys', () => {
  17. // mocking request module used to fetch custom oauth credentials
  18. nock('http://localhost:2111')
  19. .post('/zoom-keys')
  20. .reply((uri, { provider, parameters }) => {
  21. if (provider !== 'zoom' || parameters !== 'ZOOM-CREDENTIALS-PARAMS') return [400]
  22. return [200, {
  23. credentials: {
  24. key: remoteZoomKey,
  25. secret: remoteZoomSecret,
  26. verificationToken: remoteZoomVerificationToken,
  27. },
  28. }]
  29. }).persist()
  30. test('zoom logout with remote oauth keys happy path', async () => {
  31. nockZoomRevoke({ key: remoteZoomKey, secret: remoteZoomSecret })
  32. const params = { params: 'ZOOM-CREDENTIALS-PARAMS' }
  33. const encodedParams = Buffer.from(JSON.stringify(params), 'binary').toString('base64')
  34. const res = await request(authServer)
  35. .get('/zoom/logout/')
  36. .set('uppy-auth-token', token)
  37. .set('uppy-credentials-params', encodedParams)
  38. .expect(200)
  39. expect(res.body).toMatchObject({
  40. ok: true,
  41. revoked: true,
  42. })
  43. })
  44. test('zoom logout with wrong credentials params', () => {
  45. const params = { params: 'WRONG-ZOOM-CREDENTIALS-PARAMS' }
  46. const encodedParams = Buffer.from(JSON.stringify(params), 'binary').toString('base64')
  47. return request(authServer)
  48. .get('/zoom/logout/')
  49. .set('uppy-auth-token', token)
  50. .set('uppy-credentials-params', encodedParams)
  51. .expect(424)
  52. })
  53. })