From f493f031df9fb75fad502778df9ab7deb05611bb Mon Sep 17 00:00:00 2001 From: Jesse Mazzella Date: Wed, 27 Jul 2022 14:31:18 -0700 Subject: [PATCH] [e2e] Refactor and document our extension of existing Playwright API and RFE features (#5537) --- .circleci/config.yml | 47 +-- .github/PULL_REQUEST_TEMPLATE.md | 2 +- README.md | 68 ++-- e2e/README.md | 338 ++++++++++++---- e2e/appActions.js | 83 ++++ e2e/baseFixtures.js | 174 ++++++++ e2e/commonActions.js | 18 - e2e/fixtures.js | 69 ---- .../addInitRestrictedNotebook.js | 4 +- .../addNoneditableObject.js | 0 e2e/playwright-ci.config.js | 2 +- e2e/playwright-local.config.js | 5 +- e2e/pluginFixtures.js | 125 ++++++ e2e/test-data/VisualTestData_storage.json | 4 +- e2e/test-data/recycled_local_storage.json | 4 +- .../baseFixtures.e2e.spec.js} | 10 +- .../framework/exampleTemplate.e2e.spec.js | 124 ++++++ .../generateVisualTestData.e2e.spec.js | 12 +- .../framework/pluginFixtures.e2e.spec.js | 45 +++ e2e/tests/framework/testData.e2e.spec.js | 36 ++ .../{ => functional}/branding.e2e.spec.js | 3 +- .../example/eventGenerator.e2e.spec.js | 53 ++- .../sineWaveLimitProvider.e2e.spec.js} | 3 +- .../forms => functional}/forms.e2e.spec.js | 69 ++-- .../menu.e2e.spec.js} | 38 +- .../{ => functional}/moveObjects.e2e.spec.js | 31 +- .../plugins/clocks/clock.e2e.spec.js} | 5 +- .../plugins/clocks}/remoteClock.e2e.spec.js | 4 +- .../conditionSet/conditionSet.e2e.spec.js} | 18 +- .../imagery/exampleImagery.e2e.spec.js | 23 +- .../exportAsJson.e2e.spec.js | 3 +- .../importAsJson.e2e.spec.js | 3 +- .../plugins/notebook/notebook.e2e.spec.js | 4 +- .../notebook/restrictedNotebook.e2e.spec.js | 54 +-- .../plugins/notebook/tags.e2e.spec.js | 43 +- .../plugins/plot/autoscale.e2e.spec.js | 15 +- .../autoscale-canvas-panned-chrome-darwin | Bin .../autoscale-canvas-panned-chrome-linux | Bin .../autoscale-canvas-prepan-chrome-darwin | Bin .../autoscale-canvas-prepan-chrome-linux | Bin .../plugins/plot/logPlot.e2e.spec.js | 21 +- .../plugins/plot/missingPlotObj.e2e.spec.js | 17 +- .../telemetryTable/telemetryTable.e2e.spec.js | 8 +- .../timeConductor/timeConductor.e2e.spec.js | 3 +- .../plugins/timer/timer.e2e.spec.js | 64 +-- .../search.e2e.spec.js} | 178 +++++++-- e2e/tests/{ => functional}/smoke.e2e.spec.js | 8 +- e2e/tests/search.e2e.spec.js | 123 ------ e2e/tests/visual/addInit.visual.spec.js | 60 ++- .../visual/controlledClock.visual.spec.js | 51 +-- e2e/tests/visual/default.visual.spec.js | 371 +++++++++--------- e2e/tests/visual/search.visual.spec.js | 3 +- karma.conf.js | 12 +- package.json | 7 +- 54 files changed, 1523 insertions(+), 942 deletions(-) create mode 100644 e2e/appActions.js create mode 100644 e2e/baseFixtures.js delete mode 100644 e2e/commonActions.js delete mode 100644 e2e/fixtures.js rename e2e/{tests/plugins/notebook => helper}/addInitRestrictedNotebook.js (91%) rename e2e/{tests/persistence => helper}/addNoneditableObject.js (100%) create mode 100644 e2e/pluginFixtures.js rename e2e/tests/{framework.e2e.spec.js => framework/baseFixtures.e2e.spec.js} (84%) create mode 100644 e2e/tests/framework/exampleTemplate.e2e.spec.js rename e2e/tests/{visual => framework}/generateVisualTestData.e2e.spec.js (90%) create mode 100644 e2e/tests/framework/pluginFixtures.e2e.spec.js create mode 100644 e2e/tests/framework/testData.e2e.spec.js rename e2e/tests/{ => functional}/branding.e2e.spec.js (97%) rename e2e/tests/{ => functional}/example/eventGenerator.e2e.spec.js (52%) rename e2e/tests/{example/generator/SinewaveLimitProvider.e2e.spec.js => functional/example/generator/sineWaveLimitProvider.e2e.spec.js} (98%) rename e2e/tests/{api/forms => functional}/forms.e2e.spec.js (53%) rename e2e/tests/{persistence/persistability.e2e.spec.js => functional/menu.e2e.spec.js} (56%) rename e2e/tests/{ => functional}/moveObjects.e2e.spec.js (82%) rename e2e/tests/{plugins/clock/Clock.e2e.spec.js => functional/plugins/clocks/clock.e2e.spec.js} (95%) rename e2e/tests/{plugins/remoteClock => functional/plugins/clocks}/remoteClock.e2e.spec.js (93%) rename e2e/tests/{plugins/condition/condition.e2e.spec.js => functional/plugins/conditionSet/conditionSet.e2e.spec.js} (95%) rename e2e/tests/{ => functional}/plugins/imagery/exampleImagery.e2e.spec.js (97%) rename e2e/tests/{plugins/ExportAsJSON => functional/plugins/importAndExportAsJSON}/exportAsJson.e2e.spec.js (96%) rename e2e/tests/{plugins/ImportAsJSON => functional/plugins/importAndExportAsJSON}/importAsJson.e2e.spec.js (94%) rename e2e/tests/{ => functional}/plugins/notebook/notebook.e2e.spec.js (98%) rename e2e/tests/{ => functional}/plugins/notebook/restrictedNotebook.e2e.spec.js (84%) rename e2e/tests/{ => functional}/plugins/notebook/tags.e2e.spec.js (86%) rename e2e/tests/{ => functional}/plugins/plot/autoscale.e2e.spec.js (93%) rename e2e/tests/{ => functional}/plugins/plot/autoscale.e2e.spec.js-snapshots/autoscale-canvas-panned-chrome-darwin (100%) rename e2e/tests/{ => functional}/plugins/plot/autoscale.e2e.spec.js-snapshots/autoscale-canvas-panned-chrome-linux (100%) rename e2e/tests/{ => functional}/plugins/plot/autoscale.e2e.spec.js-snapshots/autoscale-canvas-prepan-chrome-darwin (100%) rename e2e/tests/{ => functional}/plugins/plot/autoscale.e2e.spec.js-snapshots/autoscale-canvas-prepan-chrome-linux (100%) rename e2e/tests/{ => functional}/plugins/plot/logPlot.e2e.spec.js (95%) rename e2e/tests/{ => functional}/plugins/plot/missingPlotObj.e2e.spec.js (89%) rename e2e/tests/{ => functional}/plugins/telemetryTable/telemetryTable.e2e.spec.js (94%) rename e2e/tests/{ => functional}/plugins/timeConductor/timeConductor.e2e.spec.js (98%) rename e2e/tests/{ => functional}/plugins/timer/timer.e2e.spec.js (73%) rename e2e/tests/{ui/layout/search/grandsearch.e2e.spec.js => functional/search.e2e.spec.js} (56%) rename e2e/tests/{ => functional}/smoke.e2e.spec.js (90%) delete mode 100644 e2e/tests/search.e2e.spec.js diff --git a/.circleci/config.yml b/.circleci/config.yml index 6814113ac1..07687b0c4d 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -94,30 +94,13 @@ jobs: parameters: node-version: type: string - browser: - type: string executor: pw-focal-development steps: - build_and_install: node-version: <> - - when: - condition: - equal: [ "FirefoxESR", <> ] - steps: - - browser-tools/install-firefox: - version: "91.7.1esr" #https://archive.mozilla.org/pub/firefox/releases/ - - when: - condition: - equal: [ "FirefoxHeadless", <> ] - steps: - - browser-tools/install-firefox - - when: - condition: - equal: [ "ChromeHeadless", <> ] - steps: - - browser-tools/install-chrome: - replace-existing: false - - run: npm run test -- --browsers=<> + - browser-tools/install-chrome: + replace-existing: false + - run: npm run test - run: npm run cov:unit:publish - save_cache_cmd: node-version: <> @@ -130,14 +113,14 @@ jobs: parameters: node-version: type: string - suite: + suite: #stable or full type: string executor: pw-focal-development parallelism: 4 steps: - build_and_install: node-version: <> - - when: #Only install chrome-beta when running the full suite to save $$$ + - when: #Only install chrome-beta when running the 'full' suite to save $$$ condition: equal: [ "full", <> ] steps: @@ -176,42 +159,26 @@ workflows: - lint: name: node14-lint node-version: lts/fermium - - unit-test: - name: node16-chrome - node-version: lts/gallium - browser: ChromeHeadless - unit-test: name: node18-chrome node-version: "18" - browser: ChromeHeadless - e2e-test: - name: e2e-ci + name: e2e-stable node-version: lts/gallium - suite: ci + suite: stable - perf-test: node-version: lts/gallium the-nightly: #These jobs do not run on PRs, but against master at night jobs: - - unit-test: - name: node16-firefoxESR-nightly - node-version: lts/gallium - browser: FirefoxESR - - unit-test: - name: node14-firefox-nightly - node-version: lts/fermium - browser: FirefoxHeadless - unit-test: name: node14-chrome-nightly node-version: lts/fermium - browser: ChromeHeadless - unit-test: name: node16-chrome-nightly node-version: lts/gallium - browser: ChromeHeadless - unit-test: name: node18-chrome node-version: "18" - browser: ChromeHeadless - npm-audit: node-version: lts/gallium - e2e-test: diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 8cbde6e73d..a5525f4ce9 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -13,7 +13,7 @@ Closes