Manifest migrations were not being fully applied due to a method in `Manifest` which refused to overwrite data.
- `Manifest` now has full control of the manifest file and its in-memory representation. Nothing else should ever modify the in-memory data directly; instead, use its API. This restriction also applies to migrations.
- Corrected some incorrect explanations in `manifest-migrations`
- `Manifest#addExtension` became `Manifest#setExtension` and allows overwriting of data, which prevented migrations from being fully applied.
- More tests
* feat(base): add get computed role and label in W3C v2
* add command names
* chore: add type
* chore: use `?` instead of `| null`
Co-authored-by: Christopher Hiller <boneskull@boneskull.com>
* Revert "chore: use `?` instead of `| null`"
This reverts commit 62af5e80ac.
Co-authored-by: Christopher Hiller <boneskull@boneskull.com>
The manifest file was not getting its migrations applied _to disk_ in all situations. Essentially: the migration could repeat over and over, depending on the environment--the changes would only exist in memory.
Added a test, as well. I didn't originally add a test because the whole migration thing came out of a rabbit hole intended to fix a separate issue. My bad!
The problem was that after we published a new major of `@appium/fake-driver`, the `updateVersion` field of the response was `null`, but `unsafeUpdateVersion` was populated; the test only used the former. Now, the test uses `updateVersion` but falls back to `unsafeUpdateVersion`.
This change makes Lerna execute E2E tests across two cores. Some of the slower E2E suites (`appium`, `support`, `opencv` and `base-driver`) also run in parallel via Mocha's `--parallel` flag.
In Appium, the main culprit was `cli.e2e.spec.js`, which I split into four files: `args` (argument handling), `cli-driver` (`driver` command), `cli-plugin` (`plugin` command) and `local` (behavior when Appium is a dependency). This should run faster (in theory) since Mocha runs tests in parallel _per file_ and will expand to the available cores.
CI has limited cores, so this won't really help there--but it will speed up local development. When running tests locally, you may see various delays, as Mocha buffers the output of a single test file.
This is a continuation of the work I did in #17252.
This disables the rules which:
- require specific capitalization
- disallow the use of periods in subjects
- warn if there's no leading blank line in the commit body
because the above are dumb
- Adds a "Run Appium" launch/debug config
- Fixes the "Run Current File" launch/debug config
- Fixes the monorepo's root TS config to handle requiring `ts-node/register` when `mocha` bootstrapped via `node`. _`node`_ must require `ts-node`; not `mocha`.
Closes#17895