test.js 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /* global browser, expect */
  2. const testURL = 'http://localhost:4567/providers'
  3. describe('File upload with Providers', () => {
  4. beforeEach(() => {
  5. browser.url(testURL)
  6. })
  7. afterEach(() => {
  8. browser.reload()
  9. })
  10. it('should upload a file completely with Google Drive', () => {
  11. startUploadTest(browser, 'GoogleDrive')
  12. signIntoGoogle(browser)
  13. finishUploadTest(browser)
  14. })
  15. it('should upload a file completely with Instagram', () => {
  16. startUploadTest(browser, 'Instagram')
  17. // do oauth authentication
  18. browser.waitForExist('input[name=username]')
  19. browser.setValue('input[name=username]', process.env.UPPY_INSTAGRAM_USERNAME)
  20. browser.setValue('input[name=password]', process.env.UPPY_INSTAGRAM_PASSWORD)
  21. browser.click('button')
  22. finishUploadTest(browser)
  23. })
  24. it('should upload a file completely with Dropbox', () => {
  25. startUploadTest(browser, 'Dropbox')
  26. // do oauth authentication
  27. browser.waitForVisible('button.auth-google')
  28. browser.click('button.auth-google')
  29. // we login with google to avoid captcha
  30. signIntoGoogle(browser)
  31. // finish oauth
  32. browser.waitForVisible('button[name=allow_access]')
  33. browser.click('button[name=allow_access]')
  34. finishUploadTest(browser)
  35. })
  36. })
  37. const startUploadTest = (browser, providerName) => {
  38. browser.click(`.uppy-DashboardTab-btn[aria-controls=uppy-DashboardContent-panel--${providerName}]`)
  39. browser.waitForVisible('.uppy-Provider-authBtn', 3000)
  40. browser.click('.uppy-Provider-authBtn')
  41. // move control to instagram auth tab
  42. browser.switchTab(browser.getTabIds()[1])
  43. }
  44. const finishUploadTest = (browser) => {
  45. // switch back to uppy tab
  46. browser.switchTab(browser.getTabIds()[0])
  47. browser.waitForVisible('.uppy-ProviderBrowser-list li.uppy-ProviderBrowserItem')
  48. browser.click('.uppy-ProviderBrowser-list li.uppy-ProviderBrowserItem:last-child button')
  49. browser.waitForVisible('.uppy-ProviderBrowser-footer .uppy-u-reset.uppy-c-btn.uppy-c-btn-primary')
  50. browser.click('.uppy-ProviderBrowser-footer .uppy-u-reset.uppy-c-btn.uppy-c-btn-primary')
  51. browser.waitForVisible('.uppy-StatusBar-content[title="Complete"]', 20000)
  52. }
  53. const signIntoGoogle = (browser) => {
  54. browser.waitForExist('#identifierId')
  55. browser.setValue('#identifierId', process.env.UPPY_GOOGLE_EMAIL)
  56. browser.click('#identifierNext')
  57. browser.waitForVisible('input[name=password]')
  58. browser.setValue('input[name=password]', process.env.UPPY_GOOGLE_PASSWORD)
  59. browser.click('#passwordNext')
  60. }