Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[e2e] Update to quickstart fixure, add makefile, and add tests Mct7343 and 7198 #414

Open
wants to merge 13 commits into
base: master
Choose a base branch
from

Conversation

unlikelyzero
Copy link
Collaborator

@unlikelyzero unlikelyzero commented Jan 25, 2024

Closes #408 #480 and backfill for nasa/openmct#7198

Describe your changes:

-Adds a quickstart fixture file for storing shared functionality between tests while providing a consistent interface with the open source fixtures.

  • backfills two tests
  • Adds a makefile

All Submissions:

  • Have you followed the guidelines in our Contributing document?
  • Have you checked to ensure there aren't other open Pull Requests for the same update/change?
  • Is this change backwards compatible? For example, developers won't need to change how they are calling the API or how they've extended core plugins such as Tables or Plots.

Author Checklist

  • Changes address original issue?
  • Tests included and/or updated with changes?
  • Command line build passes?
  • Has this been smoke tested?
  • Testing instructions included in associated issue OR is this a dependency/testcase change?

Reviewer Checklist

  • Changes appear to address issue?
  • Reviewer has tested changes by following the provided instructions?
  • Changes appear not to be breaking changes?
  • Appropriate automated tests included?
  • Code style and in-line documentation are appropriate?
  • Has associated issue been labelled unverified? (only applicable if this PR closes the issue)
  • Has associated issue been labelled bug? (only applicable if this PR is for a bug fix)

@@ -21,7 +21,7 @@ const config = {
command: 'npm run start:coverage',
url: 'http://localhost:9000/#',
timeout: 120 * 1000,
reuseExistingServer: false
reuseExistingServer: true
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

driveby. We're moving away from 'false' for faster debugging


/**
* The file contains custom fixtures which extend the base functionality of the Playwright fixtures
* and appActions. These fixtures should be generalized across all plugins.
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this will become the prototypical fixtures file that we expect openmct-e2e-as-a-dependency users to follow. They will source pluginFixture.js to set their 'My Items' per deployment

* Filters out non-fetch requests from the given array of network requests.
* This includes preflight CORS, fetching stylesheets, page icons, etc.
* Requires that a page requests object be instantiated.
* page.on('request', request => allNetworkRequests.push(request));
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

need better jsdoc

.first()
.getAttribute('title');

expect(fullReloadAlphaTelemetryValue).not.toEqual(afterReloadAlphaTelemetryValue);
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These earlier tests were predicated on the sinewave generator, that created new telemetry on every page load. If we're going to use YAMCS telemetry, we can't rely on the telemetry changing underneath us on reload.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Long and short of it: I think we should get rid of these expects

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And instead add some network measuring on reload. I think this will be the best to see if the reload actually performed as expected

Copy link
Collaborator

@scottbell scottbell Sep 11, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This still makes sense 9 months later to me 😀

@unlikelyzero unlikelyzero requested review from davetsay and ozyx March 5, 2024 20:19
@unlikelyzero unlikelyzero changed the title Mct7343 tests tests for Mct7343 and 7198 Mar 5, 2024
@unlikelyzero unlikelyzero added this to the Target:4.0.1 milestone Sep 10, 2024
@unlikelyzero unlikelyzero changed the title tests for Mct7343 and 7198 [e2e] Update to quickstart fixure and tests Mct7343 and 7198 Sep 10, 2024
unlikelyzero and others added 3 commits September 17, 2024 07:12
* Telemetry batching and throttling (#412)

* Refactored for new batched worker provider

* Skipp callbacks with no telemetry

* Process messages for that remote-clock before any others to avoid race conditions

* Fixing bugs

* Added explanatory comments. Make max batch size and throttle rate configuration

* Removed TODO comment in lieu of a followup ticket

* Make batch configuration explicit in the example

* Tell Istanbul to ignore serialized functions

* Fixing linting errors

* Allow passing in a promise that resolves to a request cache strategy for dictionary load (#418)

* temporarily enable source maps

* pass in cacheStrategy to objectProvider

* remove unused parameters

* change cache strategy to be dynamic

* disable eval-source-map in prod

* lint fix

* fix lint error

* add README section explaining new feature

---------

Co-authored-by: John Hill <[email protected]>

* Change promise to function `getDictionaryRequestOptions` (#421)

* make request promise a function getRequestOptions

* rename for clarity

* change promise to a function

* describe using getRequestOptions

* temporarily enable source maps for debugging

* Revert "temporarily enable source maps for debugging"

This reverts commit 6e40684.

* Default to returning a Promise

---------

Co-authored-by: Andrew Henry <[email protected]>

* Bump nick-fields/retry from 2 to 3 (#422)

Bumps [nick-fields/retry](https://github.com/nick-fields/retry) from 2 to 3.
- [Release notes](https://github.com/nick-fields/retry/releases)
- [Changelog](https://github.com/nick-fields/retry/blob/master/.releaserc.js)
- [Commits](nick-fields/retry@v2...v3)

---
updated-dependencies:
- dependency-name: nick-fields/retry
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* feat: Mission Status for Situational Awareness (#415)

* feat: first cut of `missionStatus` parameter and telemetry

* feat(WIP): link up mission statuses

* fix: typo

* fix: register missionStatus type in Open MCT

* feat: continue hooking up moving parts

* refactor: more method renames

* refactor: operatorStatusParameter to export functions

* refactor: rename

* remove: unimplemented argument

* refactor: a single endline

* refactor: rename `MissionRole` -> `MissionAction`

* refactor: woops missed one

* feat: user authorization

* fix: use `openmct.telemetry` api for realtime subscriptions

* Check that the mdb override is of parameter type. Discard any other mdb overrides (like algorithms) (#382)

* Check that the mdb override is of parameter type. Discard any other mdb overrides (like algorithms)

* Small change to logic

* Fix search test locator

* Address review comments

* fix: typo

---------

Co-authored-by: Mazzella, Jesse D. (ARC-TI)[KBR Wyle Services, LLC] <[email protected]>

* Update to 4.0.0 (#426)

Remove traces of 3.3.0

* Break at buildtime (#429)

* Add formatter for Binary values from YAMCS (#438)

* using atob on binary values

* using custom base64 to hex function on binary values

* add a little flair, aka, a hex prefix

* moving formatting to a custom formatter in openmct

* adding new binary to hex formatter

* fix typo

* module import syntax errors

* fix another typo

* formatting

* Fix realtime limits (#396)

* Add logic to clear limits in yamcs before running each limits test.
Add a new test to check that no network requests occur when redrawing limits due to resizing
* Add test to ensure no network requests are sent on resizing plots
* Fault management and staleness fixes - they will come in a separate PR

---------

Co-authored-by: Andrew Henry <[email protected]>

* Improve telemetry batching (#433)

*  Install remote clock to allow more flight-like testing, but leave Local Clock as the default.
* Auto-fixed some linting errors that snuck into master in binaryToHexFormatter so ignore those changes.
* Renamed rate to maxBatchWait to improve clarity.
* Added extensive e2e tests to verify that Open MCT:
      * Does not drop telemetry while loading (the original issue)
       * Always displays the latest data according to Yamcs
       * Drops telemetry when UI is under sufficient load, and warns the user
       * Reconnects after a WebSocket dropout, and re-subscribes (good catch @shefalijoshi !)

* VIPEROMCT-494: realtime and historical providers should provide same datum format (#444)

* do not include id
* refactor so realtime and historical use same datum generator

* fix(#447): Return mdb override limits correctly on resize (#448)

* fix: correctly return limits

* test(e2e): assert limit lines values before and after resize

---------

Co-authored-by: Scott Bell <[email protected]>

* Staleness and fault management fix (#440)

* Add logic to clear limits in yamcs before running each limits test.
Add a new test to check that no network requests occur when redrawing limits due to resizing

* Remove test.only

* Change test organization, based on review comments

* Remove focused test

* Add test to ensure no network requests are sent on resizing plots

* remove focused test

* Clear limits before and after each test

* Create a staleness e2e tests stub

* Use the openmct telemetry API to find the provider for realtime fault management alarm objects

* Pass openmct as a parameter to yamcs fault management provider

* adds basic stubs for staleness and fault management tests

* Update tests/e2e/yamcs/faultManagement.e2e.spec.js

Co-authored-by: Jesse Mazzella <[email protected]>

* Update tests/e2e/yamcs/staleness.e2e.js

Co-authored-by: Jesse Mazzella <[email protected]>

* Remove openmct argument

---------

Co-authored-by: Jesse Mazzella <[email protected]>
Co-authored-by: Andrew Henry <[email protected]>

* Add format metadata to Events and Commands (#443)

* WIP

* Added gauges and alphanumerics to the test

* Do not activate remote clock by default

* Activate remote clock in tests

* Make max batch wait config rather than hard-coded

* Don't hard-code quickstart URL

* Remove debugging code

* Clean up and externalize test configuration

* Reference modified Yamcs quickstart branch until integrated

* Fixed linting errors

* Fixed quickstart tools tests which I had broken

* Use akhenry/quickstart not yamcs/quickstart for now

* Build against matching Open MCT branch

* Fixed open mct references

* Trying to make work with no feedback about why it's failing

* Set playback rate

* Add target for 10Hz

* Removed parameters missing from github action? (jvm introspection stuff. Maybe security?)

* Revert change to quickstart URLs

* Fixed issue where resubscribe was not happening on websocket dropout

* auto-fixed linting errors

* Do not configure remote clock by default. Creates a dependency on yamcs-quickstart

* Switch back to building against master

* source maps

* test

* adding formats so sorting works

* adding format for reception time as well

* adding metadata to commands so they will sort without issues

* removing source maps

* lint fixes

---------

Co-authored-by: Andrew Henry <[email protected]>
Co-authored-by: Jesse Mazzella <[email protected]>

* Warn if default alarms are of a different type than a staticAlarm and… (#435)

* Warn if default alarms are of a different type than a staticAlarm and allow the app to continue

* Use better english for warning message.

* Fix linting issue

---------

Co-authored-by: Andrew Henry <[email protected]>
Co-authored-by: Jesse Mazzella <[email protected]>

* Update PULL_REQUEST_TEMPLATE.md (#450)

Sync with openmct's template

* Fix import require (#446)

* chore: rename webpack.*.js -> webpack.*.mjs

* chore: rename *e2e*.js -> *e2e*.mjs

* chore: add workspace, update opensource script and playwright config

* fix: get openmct e2e tests before npm install

* chore: *.js -> *.mjs

* fix: npm script

* chore: revert workflow change, use post script instead

* refactor: async ops deps check

* refactor: add docs, resolve path

* chore: generate `source-map` for coverage

* fix: remove `.only`

* fix: change branch for testing

* fix: point to correct file

* fix: make yamcs example work again

* fix: add back context, remove unused alias

* fix: use absolute path

* coverage: match mjs files too

* chore: specify working dirs instead of cd

* fix: yaml whitespace issues

* fix: swap order of operations on quickstart job

* chore: remove debug branches

* fix: bad merge

* fix: upgrade playwright version in the workflow (fixme)

* test: fix historicalData tests

* [Historical Telemetry Provider] Respect "order" request options (#455)

* accepting incoming order value from request options
* verifying descending order for requests in limited mode
* refactor: historicalData tests

---------

Co-authored-by: Andrew Henry <[email protected]>
Co-authored-by: Mazzella, Jesse D. (ARC-TI)[KBR Wyle Services, LLC] <[email protected]>

* chore:bump deps to match openmct 4.0.0 (#457)

* chore:bump deps to match openmct 4.0.0

* fix: update webpack devServer schema + lint/format

---------

Co-authored-by: Mazzella, Jesse D. (ARC-TI)[KBR Wyle Services, LLC] <[email protected]>

* docs: add JSDocs for Mission Status (#432)

* docs: mission-status-parameter

* docs(WIP): mission-status-telemetry

* docs: finish documention on `mission-status-telemetry`

* docs: document `mission-status-parameter`

* docs: document Mission Status configuration

* Test for Telemetry Table mutation on non-mutable objects (#458)

* update README.md steps as they have changed

* adding a test to check for telemetry tables trying to mutate immutable objects

* clarity

* adding general error failure as well as assertion of mode change

* chore: bump playwright to 1.44.0 (#460)

* chore: bump playwright to 1.45.0 (#462)

* chore: bump playwright to `1.45.2` (#465)

* chore: bump playwright to `1.45.2`

* chore: bump playwright to `1.45.2`, swap order of steps to be correct

* test: fix locator

* test: fix locator

* test: fix locator

* test: fix locators in anticipation of openmct e2e fixes (#467)

* test: fix locators in anticipation of openmct e2e fixes

* chore: use `make all`. `make all-10hz` had no effect before (maybe we thought it did?) but fails now due to Makefile upgrades

* fix: forkin' hell

- ok so it turns out that we were using a custom fork with the ability to change the data rate of the yamcs simulator script. akhenry is on vacation so i updated the branch and pushed it to my fork so we can get things moving.

* test: revert changes which broke assertion

* refactor: missed a spot :/

* build: go back to using actual quickstart repo now that our changes our merged (#473)

* Deal with Parameter mdb overrides only (#471)

* Check that the override is of type parameter before getting it's details.

* New test to ensure that openmct loads correctly when mdb overrides exist

* Update tests to use myproject visible assertion

---------

Co-authored-by: John Hill <[email protected]>

* Test for Performance Mode changes incorrectly changing sort order (#469)

* adding new test for sort order being sent in requests

* Update yamcs quickstart version to match viper (#475)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: Andrew Henry <[email protected]>
Co-authored-by: David Tsay <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Jesse Mazzella <[email protected]>
Co-authored-by: Shefali Joshi <[email protected]>
Co-authored-by: Mazzella, Jesse D. (ARC-TI)[KBR Wyle Services, LLC] <[email protected]>
Co-authored-by: Jamie V <[email protected]>
Co-authored-by: Scott Bell <[email protected]>
@unlikelyzero unlikelyzero changed the title [e2e] Update to quickstart fixure and tests Mct7343 and 7198 [e2e] Update to quickstart fixure, add makefile, and add tests Mct7343 and 7198 Sep 17, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants