This PR makes `chai` and `should()` _globals_ when using Mocha:
- `chai` is configured with `chai-as-promised`
- A `.mocharc.js` requires `./test/setup.js` _from the monorepo root_.
- Updated the ESLint config to recognize the globals.
- Updated Wallaby config
All instances of `import chai...` and the like have been removed from all test files.
This replaces all of the ad-hoc ways to find the closest `package.json` file (usually for reading the `version` field) with utility functions in the `fs` module of `@appium/support`.
- add `fs.findRoot(<dir>)` - Finds the closest parent directory from `dir` containing a `package.json`
- add `fs.readPackageJsonFrom(<dir>)` - Like above, except reads and returns the parsed contents of `package.json`
- Remove `find-root` dep from `appium` and add it to `@appium/support` instead
- Leverage these functions where needed
- Remove unnecessary `pkgRoot` export in `@appium/doctor`
- `fs-specs.js`: fix some tests which make assumptions about CWD; remove a low-value test
Just a bunch of random (mostly path-related) fixes.
## Monorepo
- Make `npm run clean` work cross-platform
- Sort root `package.json`
- Update Babel configs to suppress warning about `@babel/plugin-proposal-private-property-in-object`
- Add `.nyc_output` and `*.lerna_backup` to `.gitignore`
- Replace references to `appium-support`
- Sync `package.json` fields
- Add a [Wallaby](https://wallabyjs.com) configuration file
## appium
- `lib/config`: `package.json` resolution
- split some tests out of `config-specs.js` and into `config-e2e-specs.js` since they are very clearly not unit tests
- Improve `PROJECT_ROOT` resolution, which is still a hack
- Copy fixtures & fix paths to fixtures in tests
## @appium/base-driver
- `lib/basedriver/driver`: `package.json` resolution
- Fix broken tests when run in isolation (`chai.should()`)
## @appium/doctor
- `lib/doctor`: `package.json` resolution
- `lib/utils`: `package.json` resolution & exposed `resetLog()` which undoes what `configureBinaryLog()` does (for testing purposes)
- `utils-specs.js`: clean up after `onLogMessage` test
- copy fixtures into `build` upon transpile
- Upgrade `@appium/gulp-plugins`
## @appium/gulp-plugins
- Ensure `postTranspile` is run when `transpile` is run before tests
- Fix `.babelrc` like `babel.config.json`
## @appium/support
- Fixture resolution
- Fix broken tests when run in isolation (`chai-as-promised`)
- Copy fixtures when transpiling
* feat: add ability for drivers and plugins to recieve cli args
* chore: fix typo
* fix: make changes based on feedback
* feat: remove driver-specific server args from appium
* fix: resolve merge conflict
* fix: make changes based on feedback
* feat: add support for driver cli args in base driver
* feat: add support for testing driver args in fake-driver
* refactor: remove support for -custom locator strategy(should be handled by plugins instead)
* fix: makes changes based on feedback
* fix: remove outdated/unused args
* fix: fix docs
* fix: make changes based on feedback
* fix: make changes based on feedback
* fix: make changes based on feedback
* fix: make changes based on feedback
* fix: make tests pass
* test: tests are passing locally but not in CI, try something different to get them to pass
* test: try uninstalling fake-driver and reinstalling fake driver from packages
* fix: revert driver-e2e-specs.js and update node.js.yml
* fix: update package.json
* fix: add special case to npm
* fix: add todo
* fix: how relative paths are resolved in linkPackage
* feat: add "run" command to the client interface inorder to allow the running of scripts against drivers
* feat: add "run" command to the client interface inorder to allow the running of scripts against drivers
* chore: make changes based on feedback
* chore: make more changes based on feedback
* chore: make changes based on feedback, added e2e test for plugin scripts. Need https://github.com/appium/appium-plugins/pull/7 to be merged before the e2e tests will work.
* fix: make changes based on feedback
* fix: fix cli-e2e-specs to work with monorepo
* fix: make changes based on feedback
* fix: make changes based on feedback
* fix: make changes based on feedback
* fix: make changes based on feedback
* fix: make changes based on feedback
* test: log error
* test: add logging to install
* fix: readd clear() line
* test: add logging
* test: change up the order of cli e2e tests, maybe the tests will pass in CI now?
* test: try creating and clearing appium home between test sets
* test: try unlinking fake-driver before each test set
* test: shift aroud test sets
* test: try something new
* fix: runner to use process.execPath instead of node
* fix: remove a test
* fix: readd test
* fix: tests
* test: log test error
* fix: logging
* fix: test logging
* test: add aditional logging
* fix: log
* test: try npm cache verifying
* fix: add '--no-package-lock' to link command and refactor test
* fix: remove logs
* fix: make changes based on feedback