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