Parcourir la source

Add Transloadit test

Artur Paikin il y a 6 ans
Parent
commit
f11f5e5921

+ 1 - 1
bin/endtoend-build-tests

@@ -11,7 +11,7 @@ __file="${__dir}/$(basename "${BASH_SOURCE[0]}")"
 __base="$(basename ${__file} .sh)"
 __root="$(cd "$(dirname "${__dir}")" && pwd)"
 
-tests="tus-drag-drop tus-dashboard i18n-drag-drop xhr-limit providers"
+tests="tus-drag-drop tus-dashboard i18n-drag-drop xhr-limit providers transloadit"
 
 for t in $tests; do
   mkdir -p "${__root}/test/endtoend/$t/dist"

+ 23 - 0
test/endtoend/transloadit/index.html

@@ -0,0 +1,23 @@
+<!DOCTYPE html>
+<html>
+  <head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1">
+    <title>Uppy test page</title>
+  </head>
+  <body>
+    <style>
+      main {
+        max-width: 700px;
+        margin: auto;
+      }
+    </style>
+    <main>
+      <h2>Uppy Transloadit</h2>
+      <div id="uppy-transloadit"></div>
+    </main>
+
+    <link href="uppy.min.css" rel="stylesheet">
+    <script src="bundle.js"></script>
+  </body>
+</html>

+ 51 - 0
test/endtoend/transloadit/main.js

@@ -0,0 +1,51 @@
+require('es6-promise/auto')
+require('whatwg-fetch')
+const Uppy = require('@uppy/core')
+const Dashboard = require('@uppy/dashboard')
+const Transloadit = require('@uppy/transloadit')
+
+function initUppyTransloadit (transloaditKey) {
+  var uppyTransloadit = Uppy({
+    id: 'uppyTransloadit',
+    debug: true,
+    autoProceed: true
+  })
+
+  uppyTransloadit
+    .use(Dashboard, {
+      target: '#uppy-transloadit',
+      inline: true
+    })
+    .use(Transloadit, {
+      params: {
+        auth: { key: transloaditKey },
+        steps: {
+          'crop_thumbed': {
+            use: [':original'],
+            robot: '/image/resize',
+            height: 100,
+            resize_strategy: 'crop',
+            width: 100
+          }
+        }
+      },
+      waitForEncoding: true
+    })
+
+  uppyTransloadit.on('transloadit:result', (stepName, result) => {
+    // use transloadit encoding result here.
+    console.log('Result here ====>', stepName, result)
+    console.log('Cropped image url is here ====>', result.url)
+
+    var img = new Image()
+    img.onload = function () {
+      var result = document.createElement('div')
+      result.setAttribute('id', 'uppy-result')
+      result.textContent = 'ok'
+      document.body.appendChild(result)
+    }
+    img.src = result.url
+  })
+}
+
+window.initUppyTransloadit = initUppyTransloadit

+ 42 - 0
test/endtoend/transloadit/test.js

@@ -0,0 +1,42 @@
+/* global browser, expect, capabilities, $ */
+const path = require('path')
+const { selectFakeFile, supportsChooseFile } = require('../utils')
+
+const testURL = 'http://localhost:4567/transloadit'
+
+function unhideTheInput () {
+  var input = document.querySelector('#uppy-transloadit .uppy-Dashboard-input')
+  input.removeAttribute('hidden')
+  input.removeAttribute('aria-hidden')
+  input.removeAttribute('tabindex')
+}
+
+function setTransloaditKeyAndInit (transloaditKey) {
+  window.initUppyTransloadit(transloaditKey)
+}
+
+describe('Transloadit file processing', () => {
+  beforeEach(() => {
+    browser.url(testURL)
+    browser.execute(setTransloaditKeyAndInit, process.env.TRANSLOADIT_KEY)
+  })
+
+  it('should upload a file to Transloadit and crop it', () => {
+    const inputPath = '#uppy-transloadit .uppy-Dashboard-input'
+    const resultPath = '#uppy-result'
+
+    $(inputPath).waitForExist()
+
+    if (supportsChooseFile(capabilities)) {
+      browser.execute(unhideTheInput)
+      browser.chooseFile(inputPath, path.join(__dirname, '../../resources/image.jpg'))
+    } else {
+      browser.execute(selectFakeFile, 'uppyTransloadit')
+    }
+    browser.pause(15000)
+    // $('.uppy-StatusBar-actionBtn--upload').click()
+    // $(resultPath).waitForExist()
+    const text = browser.getText(resultPath)
+    expect(text).to.be.equal('ok')
+  })
+})

+ 2 - 1
test/endtoend/wdio.base.conf.js

@@ -92,7 +92,8 @@ exports.config = {
     { mount: '/tus-drag-drop', path: './test/endtoend/tus-drag-drop/dist' },
     { mount: '/xhr-limit', path: './test/endtoend/xhr-limit/dist' },
     { mount: '/providers', path: './test/endtoend/providers/dist' },
-    { mount: '/create-react-app', path: './test/endtoend/create-react-app/build' }
+    { mount: '/create-react-app', path: './test/endtoend/create-react-app/build' },
+    { mount: '/transloadit', path: './test/endtoend/transloadit/dist' }
   ],
 
   // Framework you want to run your specs with.