A codemod to transform test files written in Protractor into WebdriverIO tests
WebdriverIO Codemod 
===================
This project contains various codemods to help migrating from either one major WebdriverIO version to another or from a specific framework to WebdriverIO. It can be used with jscodeshift and currently supports the following migrations:
- [x] v5 ▶️ v6 (see migration guide)
- [x] v6 ▶️ v7 (see migration guide)
- [x] Protractor ▶️ WebdriverIO (see migration guide)
- [x] Sync ▶️ Async (see migration guide)
- [ ] _more will eventually follow, let us know which ones you would like to see_
If you run into any issues during your migration please let us know.
To transform your spec files, you need to install the following packages:
``sh`
$ npm install jscodeshift @wdio/codemod
To transform you code, run:
`sh`
$ npx jscodeshift -t ./node_modules/@wdio/codemod/e.g. to migrate from v5 to v6
$ npx jscodeshift -t ./node_modules/@wdio/codemod/v6 ./e2e/e.g. to migrate from v6 to v7:
$ npx jscodeshift -t ./node_modules/@wdio/codemod/v7 ./e2e/e.g. to transform Protractor code:
$ npx jscodeshift -t ./node_modules/@wdio/codemod/protractor ./e2e/e.g. to tranform from sync to async
$ npx jscodeshift -t ./node_modules/@wdio/codemod/async ./e2e/
If you use TypeScript make sure you apply a different parser as parameter, e.g.:
`sh`
$ npx jscodeshift -t ./node_modules/@wdio/codemod/protractor --parser=tsx ./e2e/*.ts
If you use a different line terminator from your os, you can override it as parameter, e.g.:
`sh``
$ npx jscodeshift -t ./node_modules/@wdio/codemod/async --printOptions='{\"lineTerminator\":\"\n\"}' ./e2e/
You can transform tests as well as config files, e.g.:
![Codemod Usage Example][example]
[example]: /.github/assets/example.gif "Codemod Usage Example"