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

Migrate to Vue 3 Migration Build #6767

Merged
merged 120 commits into from Jul 19, 2023
Merged

Migrate to Vue 3 Migration Build #6767

merged 120 commits into from Jul 19, 2023

Conversation

ozyx
Copy link
Member

@ozyx ozyx commented Jun 29, 2023

Closes #6721
Closes #5713

Describe your changes:

This PR contains the changes necessary to upgrade Open MCT from Vue 2 to the Vue 3 Migration Build. It resolves all incompatibilities between Vue 2 and this migration build. Some of the notable changes include:

  • Replacing all instances of the new Vue() component creation pattern
    • In Vue 3, components cannot be created on the fly and mounted off-DOM. The suggested fix from Vue is to use createApp, but in the context of Open MCT this means dozens of Vue apps being created and destroyed at any given moment. Instead, we have used a community hack for creating individual components.
  • beforeDestroy() -> beforeUnmount()
  • destroyed() -> unmounted()
  • The addition of deep: true option on Array listeners is now required to detect Array changes
  • Open MCT is now mounted on a child div instead of directly on document.body

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)

ozyx added 29 commits June 13, 2023 15:36
- move `v-bind` to first property
- remove `.native()` method
- Replace `.$el` with refs
- Use `toRaw()` to unwrap reactive Proxy for comparison
@deploysentinel
Copy link

deploysentinel bot commented Jun 29, 2023

Current Playwright Test Results Summary

✅ 13 Passing - ❌ 1 Failing

Run may still be in progress, this comment will be updated as current testing workflow or job completes...

(Last updated on 07/19/2023 06:28:15pm UTC)

Run Details

Running Workflow e2e-couchdb on Github Actions

Commit: fdfca3a

Started: 07/19/2023 06:23:31pm UTC

❌ Failures

📄   functional/plugins/notebook/notebookWithCouchDB.e2e.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Notebook Tests with CouchDB @couchdb Inspect Notebook Entry Network Requests
Retry 2Retry 1Initial Attempt
Error: Test timeout of 60000ms exceeded.
Test timeout of 60000ms exceeded.
6.38% (3) 3 / 47 runs
failed over last 7 days
59.57% (28) 28 / 47 runs
flaked over last 7 days

View Detailed Build Results


Current Playwright Test Results Summary

✅ 44 Passing - ❌ 5 Failing - ⚠️ 2 Flaky

Run may still be in progress, this comment will be updated as current testing workflow or job completes...

(Last updated on 07/19/2023 06:28:15pm UTC)

Run Details

Running Job e2e-stable on CircleCI

Commit: fdfca3a

Started: 07/19/2023 04:03:30pm UTC

❌ Failures

📄   functional/plugins/plot/logPlot.e2e.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Log plot tests Log Plot ticks are functionally correct in regular and log mode and after refresh
Retry 2Retry 1Initial Attempt
Error: Test timeout of 180000ms exceeded.
Test timeout of 180000ms exceeded.
34.13% (57) 57 / 167 runs
failed over last 7 days
2.40% (4) 4 / 167 runs
flaked over last 7 days

📄   functional/plugins/conditionSet/conditionSet.e2e.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Basic Condition Set Use ConditionSet should output blank instead of the default value
Initial Attempt
Error: expect(received).toHaveText(expected)...
expect(received).toHaveText(expected)

Expected string: "---"
Received string: "false"
Call log:
  - expect.toHaveText with timeout 5000ms
  - waiting for locator('[aria-label="Current Output Value"]')
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>Default</span>
  -   unexpected value "Default"
  - waiting for locator('[aria-label="Current Output Value"]')
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>Default</span>
  -   unexpected value "Default"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>Default</span>
  -   unexpected value "Default"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>Default</span>
  -   unexpected value "Default"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>false</span>
  -   unexpected value "false"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>false</span>
  -   unexpected value "false"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>false</span>
  -   unexpected value "false"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>false</span>
  -   unexpected value "false"
  -   locator resolved to <span aria-label="Current Output Value" class="c-cs__c…>false</span>
  -   unexpected value "false"

1.48% (2) 2 / 135 runs
failed over last 7 days
0% (0) 0 / 135 runs
flaked over last 7 days

📄   functional/plugins/imagery/exampleImagery.e2e.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Example Imagery Object Can use independent time conductor to change time
Retry 1Initial Attempt
Error: Test timeout of 60000ms exceeded.
Test timeout of 60000ms exceeded.
100% (25) 25 / 25 runs
failed over last 7 days
0% (0) 0 / 25 runs
flaked over last 7 days

📄   functional/plugins/notebook/tags.e2e.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Tagging in Notebooks @addinit Can add tags
Retry 2Retry 1Initial Attempt
Error: Test timeout of 60000ms exceeded.
Test timeout of 60000ms exceeded.
10.58% (20) 20 / 189 runs
failed over last 7 days
0% (0) 0 / 189 runs
flaked over last 7 days

📄   functional/notification.e2e.spec.js • 1 Failure

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Notifications List Notifications can be dismissed individually
Retry 2Retry 1Initial Attempt
Error: expect(received).toBe(expected) // Object.is equality...
expect(received).toBe(expected) // Object.is equality

Expected: 1
Received: 0
24.42% (53) 53 / 217 runs
failed over last 7 days
0% (0) 0 / 217 runs
flaked over last 7 days

⚠️ Flakes

📄   functional/planning/ganttChart.e2e.spec.js • 1 Flake

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Gantt Chart Displays all plan events
Retry 1Initial Attempt
10.28% (22) 22 / 214 runs
failed over last 7 days
4.67% (10) 10 / 214 runs
flaked over last 7 days

📄   functional/plugins/imagery/exampleImagery.e2e.spec.js • 1 Flake

Test Case Results

Test Case Last 7 days Failures Last 7 days Flakes
Example Imagery Object Can use Mouse Wheel to zoom in and out of latest image
Retry 1Initial Attempt
0% (0) 0 / 190 runs
failed over last 7 days
81.58% (155) 155 / 190 runs
flaked over last 7 days

View Detailed Build Results


@github-actions github-actions bot removed the pr:e2e:couchdb npm run test:e2e:couchdb label Jul 18, 2023
@ozyx ozyx requested a review from akhenry July 18, 2023 23:03
@@ -223,9 +221,13 @@ export default {
this.composition.load();
this.gridDimensions = [this.$el.offsetWidth, this.$el.scrollHeight];

this.openmct.objects.observe(this.domainObject, 'configuration.items', (items) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

okay okay

Copy link
Contributor

@khalidadil khalidadil left a comment

Choose a reason for hiding this comment

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

Reviewed the files I indicated on the spreadsheet - good work on this huge change!!

@ozyx ozyx added the pr:e2e:couchdb npm run test:e2e:couchdb label Jul 19, 2023
@akhenry akhenry merged commit 4885c81 into master Jul 19, 2023
5 of 13 checks passed
@akhenry akhenry deleted the vue3-compat-migration branch July 19, 2023 18:22
@github-actions github-actions bot removed the pr:e2e:couchdb npm run test:e2e:couchdb label Jul 19, 2023
@depperm depperm mentioned this pull request Aug 19, 2023
@davetsay davetsay restored the vue3-compat-migration branch November 6, 2023 23:57
davetsay added a commit that referenced this pull request Nov 7, 2023
@unlikelyzero unlikelyzero added this to the Target:3.0.0 milestone Nov 13, 2023
unlikelyzero added a commit that referenced this pull request Nov 16, 2023
* only show marquee for selected item

* Revert "only show marquee for selected item"

This reverts commit d17af21.

* revert change made in #6767

* create framework for displayLayout visual test

* WIP create display layout for test

* only show marquee for selected

* fix selection of object in nested layout

* fix grid and code cleanup

* add child layouts side by side

* code cleanup

* externalize setup for reuse in multiple tests

* write marquee and grid tests

* fix object in layout locator

* fix nested layout selector

* add aria label to layouts

* fix layout locator

* add jsdoc for test setup function

* make test more efficient

* cleanup and linting

* update locator

* update locators

---------

Co-authored-by: John Hill <john.c.hill@nasa.gov>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade to Vue 3 Migration Build Notebook should use the Menu API for context menus
6 participants