From b971258270ac9b06ea6b546eeac0890b36a060b2 Mon Sep 17 00:00:00 2001
From: xgui3783 <xgui3783@gmail.com>
Date: Fri, 26 Jun 2020 08:21:16 +0200
Subject: [PATCH] Chore debug travis e2e (#551)

fix travis ci
---
 .travis.yml                                   | 87 ++++++++++---------
 .../changeTemplate.prod.e2e-spec.js           | 17 ++--
 2 files changed, 57 insertions(+), 47 deletions(-)

diff --git a/.travis.yml b/.travis.yml
index a66acf960..e9d1d40d2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,18 +8,18 @@ node_js:
 git:
   depth: 3
 
-script: 'echo Running ${TEST_SUITE} against $(node -v)'
+# skipping install and script at root
+# as otherwise, travis will run npm install / npm test
+install: skip
+script: skip
 
 jobs:
   include:
-
-    - stage: Unit test frontend
-      name: frontend unit test
-
-      # env(TEST_SUITE) = 'unit-frontend' - for parallel runs in TravisCI
-      # NOT type = pull_request - only run on branch, so it is not run on PR (duplicated runs)
-      # NOT branch in (master, staging, dev) - all changes done to these branches should go through PR, so do not run unit tests
-      if: (env(TEST_SUITE) = 'unit-frontend') AND (NOT type = pull_request) AND (NOT branch in (master, staging, dev))
+    - stage: Unit tests and Lint
+      if: |
+        type = push AND \
+        branch NOT IN (master, staging, dev)
+      name: Unit test frontend / Lint
       install:
       - npm i
       script:
@@ -28,13 +28,10 @@ jobs:
       env:
       - NODE_ENV=test
 
-    - stage: Unit test backend
-      name: backend unit test
-
-      # env(TEST_SUITE) = 'unit-backend' - for parallel runs in TravisCI
-      # NOT type = pull_request - only run on branch, so it is not run on PR (duplicated runs)
-      # NOT branch in (master, staging, dev) - all changes done to these branches should go through PR, so do not run unit tests
-      if: (env(TEST_SUITE) = 'unit-backend') AND (NOT type = pull_request) AND (NOT branch in (master, staging, dev))
+    - name: Unit test backend
+      if: |
+        type = push AND \
+        branch NOT IN (master, staging, dev)
       before_install:
       - cd deploy
       install:
@@ -45,23 +42,6 @@ jobs:
       - NODE_ENV=test
       - PORT=12234
 
-    - stage: local e2e
-      # type = api - should only be activated by API
-      # when send API, ensure to set env TEST_SUITE=e2e-local to explicitly trigger this build
-      if: (type = api) AND (env(TEST_SUITE) IS present)
-      name: e2e (local)
-      install:
-      - npm i
-      - npm run wd -- update --versions.chrome=${CHROMIUM_VERSION}
-      - npm i --no-save puppeteer@${PPTR_VERSION}
-      script:
-      - echo Running test against $TEST_SUITE
-      - ATLAS_URL=$TEST_SUITE npm run e2e
-      env:
-      - CHROMIUM_VERSION=80.0.3987.106
-      - PPTR_VERSION=2.1.0
-      - PROTRACTOR_SPECS=./src/navigating/*.e2e-spec.js
-
 
     # Temporarily disabling browserstack e2e tests. They seem to fail without any reason
 
@@ -78,6 +58,12 @@ jobs:
     #   - BROWSERSTACK_USERNAME=xiao33
     #   - secure: "YD2hDBnWzcMs9mTJCsKkJimd+mYKP8V1lTaCnxNvspJUxTuBWFmr8cvryIs9G9DhwgxkC3YL7hugsGkwMg6OIq27vLlo8mgoKS7/qrkWAJApGvDW4jc4CHpI2iE/ryrwG1bI3u9TuG0kSw+2sN/786LBgArlf5NbmwB9zmW4zyzjXXzSME34cwYdfEP96L2cob/uGiIj9YdaA1k3zfBhQQlp328i/xzYbIAcwfIia1AKYh/wgCzj+yfWDQ0Rtg9VcI2JiNfcbzMCgvDEBzshgeXuubFd9GPqPsc8zJhYqAi/15ge+WiB8R50MnZsYHO39JJihQzKz6WxIZQDeOQ2xd600NhFFLg6WPdE3jxAyENouTAd+0zJgXEeUU71YBDBl6RViagf8k7eOe9oMPW5ZlevdD3vcI8BC/qUL6Evye8QDDNi0s8gbIvcnJl5QMRBpeYcm/QaRUow1YeJobpccj/3tb7qTbc7T4Rha/NRBNhbhp/WzDSO/BUSEtpgJ3YwSEPTiEeSocTRT8ylnhEtBB70h4vQSClV73lW4vn7WjdZUTRACdxFNJ1MteQJ+3bgzyWMhDtdQo6BSz2UxF0mQFayAu2p9j0+MbB7x2zW9tksSw+6B6EjzPhQw6eOs2K0+syxWg09MTW1Fy6n0Zgchn0RWSnEPqPvss6kB2pkAR4="
 
+env:
+  global:
+    - CHROMIUM_VERSION=80.0.3987.106
+    - PPTR_VERSION=2.1.0
+    - PROTRACTOR_SPECS=./src/navigating/*.e2e-spec.js
+
 # addons:
 #   browserstack:
 #     username: "xiao33"
@@ -85,9 +71,32 @@ jobs:
 #       secure: "j0NdVLyNwm1gDclEeE/xYrXAYiYAlx3HQxNRHMFhJyFml5R22spEMTwrTRl/vzyhv1FwfJAKfh4qbOn99cZ5Dzm7fWc8+Kq1zpp/1PRTzbFaLluJkV1wCwoODZkzmSVPj43M6070FhCJvOfe5VRUV440CgZH8IWRm7xaxRnN/MVyFMErMV/GIczEBB7D7E4mMhe6c9pBxjmojDDP4rGvKLGOYU7oVQKgZtbHtP/BxjQ7uzMysdTHZGZ/2c/XW/2bKVSADi4vFzge5PMVF3nSH+vzA09ro180Q5aoaek4XQPoIza0s0cqtqkbvkbJ+lWRE+Q7wJDhQLM4WNx5GX3fegJiqJRT7272EgGAUy6C+e2F+D5nPucf3w6Uov9vBn5zZjbfXdNah3GZEXOTRNAVzstySiwiZe7/f4bk0vWIiEhHC+iutjn8skMxFnuw2eM3SJ5ayjxskHOdRux+1fuDya32ctx8y9a3XLhuFcuGTaeMSAn5Dw5qOlI5Qoc+xRSARoRWKmlEuxTUudD0e+b8xqfZgmOP7D3GZ6QX2W4yFrOLGqUzEySHr8hxxzhIlfwSvVdJ15AtN2AtPFQYQXb7M+XX1L7fr39Z/5ctr7DDgljSE3F2U5ofyWV2hh54aGMBQe76cZfVzF4bi98X3r6u0b3Knyti2pvx5jIoxP46nOA="
 
 
-# Parallelising tests in Travis
-
-env:
-  jobs:
-  - TEST_SUITE=unit-frontend
-  - TEST_SUITE=unit-backend
+# to run e2e tests, send API request with the following payload
+# {
+#  "request": {
+#  "message": "API request: e2e on deployed staging build",
+#  "branch":"chore_debugTravisE2e",
+#  "merge_mode": "deep_merge",
+#  "config": {
+#    "env": {
+#      "global": [
+#         "PROTRACTOR_SPECS=./src/navigating/*.e2e-spec.js",
+#         "CHROMIUM_VERSION=80.0.3987.106",
+#         "PPTR_VERSION=2.1.0"
+#      ],
+#      "jobs": [
+#        "ATLAS_URL=https://interactive-viewer-staging.apps.hbp.eu/",
+#        "ATLAS_URL=https://atlases.ebrains.eu/viewer-staging/"
+#      ]
+#    },
+#    "install": [
+#      "npm i",
+#      "npm run wd -- update --versions.chrome=${CHROMIUM_VERSION}",
+#      "npm i --no-save puppeteer@${PPTR_VERSION}"
+#    ],
+#    "script": [
+#      "echo Running e2e on $ATLAS_URL with protractor specs $PROTRACTOR_SPECS",
+#      "npm run e2e"
+#     ]
+#   }
+# }}
diff --git a/e2e/src/navigating/changeTemplate.prod.e2e-spec.js b/e2e/src/navigating/changeTemplate.prod.e2e-spec.js
index 5c7a9c278..df74a6cbd 100644
--- a/e2e/src/navigating/changeTemplate.prod.e2e-spec.js
+++ b/e2e/src/navigating/changeTemplate.prod.e2e-spec.js
@@ -39,10 +39,7 @@ describe('trans template navigation', () => {
     const expectedPosition = [630, 510]
     const expectedColor = {red: 70, green: 139, blue: 57}
 
-    await iavPage.goto(url, { interceptHttp: true, doNotAutomate: true })
-    await iavPage.wait(200)
-    await iavPage.dismissModal()
-    await iavPage.waitUntilAllChunksLoaded()
+    await iavPage.goto(url)
 
     await iavPage.searchRegionWithText(area)
     await iavPage.wait(1000)
@@ -51,12 +48,16 @@ describe('trans template navigation', () => {
     await iavPage.dismissModal()
     await iavPage.wait(500)
     await iavPage.selectDropdownTemplate('MNI Colin 27')
+    /**
+     * wait for template translate & js execution
+     */
+    await iavPage.wait(1000)
     await iavPage.waitUntilAllChunksLoaded()
-    const { red, green, blue } = await iavPage.getRgbAt({ position: expectedPosition })
+    const actualColor = await iavPage.getRgbAt({ position: expectedPosition })
 
-    expect(red).toEqual(expectedColor.red)
-    expect(green).toEqual(expectedColor.green)
-    expect(blue).toEqual(expectedColor.blue)
+    for (const key in actualColor) {
+      expect(Math.abs(actualColor[key] - expectedColor[key])).toBeLessThan(5)
+    }
 
   })
 
-- 
GitLab