dashboard-transloadit.spec.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. describe('Dashboard with Transloadit', () => {
  2. beforeEach(() => {
  3. cy.visit('/dashboard-transloadit')
  4. cy.get('.uppy-Dashboard-input').as('file-input')
  5. cy.intercept('/assemblies').as('createAssemblies')
  6. cy.intercept('/assemblies/*').as('assemblies')
  7. cy.intercept('/resumable/*').as('resumable')
  8. })
  9. it('should upload cat image successfully', () => {
  10. cy.get('@file-input').attachFile('images/cat.jpg')
  11. cy.get('.uppy-StatusBar-actionBtn--upload').click()
  12. cy.wait('@assemblies')
  13. cy.wait('@resumable')
  14. cy.get('.uppy-StatusBar-statusPrimary').should('contain', 'Complete')
  15. })
  16. it('should close assembly polling when cancelled', () => {
  17. cy.get('@file-input').attachFile(['images/cat.jpg', 'images/traffic.jpg'])
  18. cy.get('.uppy-StatusBar-actionBtn--upload').click()
  19. cy.intercept({
  20. method: 'GET',
  21. url: '/assemblies/*',
  22. }).as('assemblyPolling')
  23. cy.intercept(
  24. { method: 'PATCH', pathname: '/files/*', times: 1 },
  25. { statusCode: 204, body: {} },
  26. )
  27. cy.intercept(
  28. { method: 'DELETE', pathname: '/resumable/files/*', times: 1 },
  29. { statusCode: 204, body: {} },
  30. )
  31. cy.wait('@assemblyPolling')
  32. cy.window().then(({ uppy }) => {
  33. expect(Object.values(uppy.getPlugin('Transloadit').activeAssemblies).every((a: any) => a.pollInterval)).to.equal(true)
  34. })
  35. cy.get('button[data-cy=cancel]').click()
  36. cy.window().then(({ uppy }) => {
  37. expect(Object.values(uppy.getPlugin('Transloadit').activeAssemblies).some((a: any) => a.pollInterval)).to.equal(false)
  38. })
  39. })
  40. it('should not emit error if upload is cancelled right away', () => {
  41. cy.get('@file-input').attachFile('images/cat.jpg')
  42. cy.get('.uppy-StatusBar-actionBtn--upload').click()
  43. const handler = cy.spy()
  44. cy.window().then(({ uppy }) => {
  45. const { files } = uppy.getState()
  46. uppy.on('upload-error', handler)
  47. const [fileID] = Object.keys(files)
  48. uppy.removeFile(fileID)
  49. uppy.removeFile(fileID)
  50. cy.wait('@createAssemblies').then(() => expect(handler).not.to.be.called)
  51. })
  52. })
  53. })