* fix(@wdio/jasmine-framework): become independant from expect-webdriverio
* remove console.log
* get tests to work
* fix(ci): add eslint as dep
* fix tests
* run unit tests on Node.js 20, 22 and 24
* move @sveltejs/vite-plugin-svelte to browser runner
* remove usage of Node.js primitives in webdriver and webdriverio
* fix unit tests
* skip svelte test for now
* increase timeouts
* fix component test
* increase timeouts
* increase timeouts
* increase timeouts
* fix imageSize call
* Draft solution masking on the `onBeforeCommand`
Use same default string as appium
Use same default token as appium
Full working solutions
Fix compilation problems
Remove it from capabilities from simplicity
Fix grammar
Use Regex native type
Draft mask body & command args in webdriver directly
Full working solution
Removing old solution and complete the new one
Revert "Draft solution masking on the `onBeforeCommand`"
This reverts commit 5feb324af2d2a1ded4e81c86cad2670a34150b7b.
Code review
Update packages/webdriver/src/command.ts
Co-authored-by: Christian Bromann <git@bromann.dev>
Unit test on the regExp converter from string
Add missing case of missing starting and ending slash
Remove undesired changes
Convert string to regExps only once
Fix problem after rebase
remove occurences of any
Add new mask parameter to elementSendKeys to mask text input and more
Added also the `/session/:sessionId/appium/settings` endpoints to generate regEx from the sensitive value so that we can mask the value int he appium log on top of WebDriver log and other touchpoint
e2e test for masking text value with setValue command
Use `updateSettings` only with Appium
Review solution to be completely outside of `request.ts`
Use env `WDIO_LOG_MASKING_PATTERNS` to pass regex and mask log
Full working solutions to mask logs with 0 1 or 2 capturing group
Working solution to mask for example BrowserStack key in logs
Code review
Fix masking not working when output directly in console
mask string logging only
Better code for wdio-logger masking + more unit tests
- Better typing in logger to reflect reality of having only 1 arg of type string of 3 args where the third can be anything.
- Move masking utility code into an utils file and add better unit tests
- Add `setMaskingPatterns` following `setLogLevelsConfig` for more flexible configuration
- Fix a couple fo edge cases
- Ensure we mask the output of serializers too
Have mask in command optional and fix ut
- Have mask optional in send and add command to not interfere with expected output and be less "breaking" if masking is not used
- fix ut affected by new logData eventhandler
Better masking code for command with masking at true
- Move masking code for command into an utility
- Use args better with index to fetch mask and text
- Apply masking only if the command has the param 'mask', 'text' and mask is true
- Share the logger replacer with this package
- Fix Logger mock for the `SENSITIVE_DATA_REPLACER`
- Replace the sensitive info in both the body and args
- Make sure we reuse existing body and args if no masking require for better backward compatibility
- Add unit test for commands with masking
Review e2e tests to had a input with masking case
Remove `.only` on tests
Remove fail tentative
Tentative fix for failure in `react.test.tsx`
- react.test.tsx: SyntaxError: Importing binding name 'SENSITIVE_DATA_REPLACER' is not found
* Use the new appium http header masking automatically
* fix: used an additional non-typed options to pass the masking property
* Add an options object for future needs
* Fix masking e2e
* Be more verbose on the unmasked vs masked version in the code
* Update packages/wdio-logger/src/index.ts
Co-authored-by: Christian Bromann <git@bromann.dev>
* Update packages/wdio-logger/src/index.ts
Co-authored-by: Christian Bromann <git@bromann.dev>
* Code review
- Use optional options instead
- Add more comment on intentions
* Update packages/webdriver/src/types.ts
* Update packages/webdriverio/src/types.ts
* Update packages/webdriver/tests/command.test.ts
* Update packages/webdriverio/src/types.ts
* Update packages/webdriver/tests/utils.test.ts
* On more UT for emit and log.info cases with masked data
* make sure the capture data are reset
* Better integration of the appium header
* final code review
* Fix pipeline
* Fix depcheck
* Fix this.client header undesired alteration
* Ensure more code coverage
* Apply suggestions from code review
Apply suggestions from code review
Apply suggestions from code review
* Code reviews
* Fix `CommandRuntimeOptions is not defined`
* Review to mask all captured group + documentation
* Add more verbose e2e
* Add `maskingPatterns` capabilities to set easily masking patterns
* Code review
* Test if this is causing e2e to fails!
* Fix typo
* Rectify doc since it is not a capability
* More robust masking algorithm supporting logging of string array
- Apply masking on the entire string after stripping the colors (ansi) for a more robust algorithm
- The above allow to support regular expression with keyword like `RESULT` or `COMMAND` or `BIDI COMMAND`
- Downside is in the console some colors are lost
- Enhance doc for the above and show an example to configure all loggers since using wdio.conf object not always work for all of them
* Simplify `setMaskingPatterns` API
* Add JSDOC and simplify `mask` following previous changes
* Update packages/webdriverio/src/types.ts
Co-authored-by: Christian Bromann <git@bromann.dev>
* Update packages/webdriver/src/types.ts
Co-authored-by: Christian Bromann <git@bromann.dev>
* Use suggested return-early version of mask in used command.ts
* Fix grammar + review doc
* be more human friendly
* Test
* Code review
* Fix new line sometimes stripped away
* Update packages/wdio-logger/README.md
Co-authored-by: Christian Bromann <git@bromann.dev>
* Apply suggestions from code review
Co-authored-by: Christian Bromann <git@bromann.dev>
* Last comment review checking types in setMaskingPatterns
* Add doc on `maskingPatterns` in Configuration.md
* Add guides on security
* Apply suggestions from code review
* Add missing import in example
---------
Co-authored-by: Christian Bromann <git@bromann.dev>
* feat(reporter): add browserName function and use where required
* do more changes
* oops
* Apply suggestions from code review
Co-authored-by: Christian Bromann <git@bromann.dev>
* fix
* remove unused import
* Update packages/wdio-allure-reporter/src/reporter.ts
---------
Co-authored-by: Christian Bromann <git@bromann.dev>
* fix: support windows/mac apps for isDisplayed
- add 2 new session flags for windows and mac apps
- add UT's
- add Docs
* chore: forgot to push the docs
* fix(webdriverio): make webdriverio loadable in browser environments
* load scripts at build time
* remove eventemitter in addInitScript
* fix unit tests
* mock global scripts
* feat: set basics for tap command
* feat: add different taps
- add native tap on coordinates
- add web tap on coordinates
- add native tap on element
- add web tab on element
- add automatically scrolling when element is not visible on native tap
- add first unit tests
* test: add 2 failing tests
* fix: update scroll logic
- tested and works on Android
- updated the implicitWait for tap
- updated UT's
* fix: reduce tap complexity
- fix docs for mobile element commands
- update UT's
* feat: add (browser|driver).tap()
- update tests
* chore: updated docs
* chore: fix build
* feat: update docs
- update template to support merged cells as row info
* feat: enhance scrollIntoView to support native mobile
Initial setup to support Native apps
* test: Add unit tests
* fix: fix types
* chore: add the docs and fix types
* fix: make use of $$ from the browser
- fix tests
* Update packages/webdriverio/src/commands/element/scrollIntoView.ts
Co-authored-by: Christian Bromann <git@bromann.dev>
* chore: updates after feedback
- changed code order
- updated error messages
- fixed UTs
* fix: exclude the scrollIntoView
* fix: fix type for scrollIntoView
* fix: fix type
* fix: type test
* test: fix all UTs
- due to the extra getContext call in mobile mode a lot of UT's failed
---------
Co-authored-by: Christian Bromann <git@bromann.dev>
* wip
* progress
* make it work in the browser
* make it better
* clean up and tests
* fix issues
* fix test
* better stale element detection
* fix test config
* no mock tests for Safari
* V9 drop support for Node.js 16 (#11493)
* (internal): drop support for Node.js 16
update engines of package.json files
* (internal): drop support for Node.js 16
update CONTRIBUTING.md with Node.js 20 as recommendation
* (internal): drop support for Node.js 16
update github workflows
* (internal): drop support for Node.js 16
update external packages that dropped the support already
* (internal): drop support for Node.js 16
resolve PR feedback
* Update packages/webdriver/package.json
* Update packages/wdio-cucumber-framework/package.json
* Update package.json
---------
Co-authored-by: Christian Bromann <git@bromann.dev>
* (webdriverio): merge isDisplayed and isDisplayedWithinViewport (#11857)
* (webdriverio): merge isDisplayed and isDisplayedWithinViewport
* allow to specify withinViewport check in waitForDisplayed
* V9 drop support for Node.js 16 (#11493)
* (internal): drop support for Node.js 16
update engines of package.json files
* (internal): drop support for Node.js 16
update CONTRIBUTING.md with Node.js 20 as recommendation
* (internal): drop support for Node.js 16
update github workflows
* (internal): drop support for Node.js 16
update external packages that dropped the support already
* (internal): drop support for Node.js 16
resolve PR feedback
* Update packages/webdriver/package.json
* Update packages/wdio-cucumber-framework/package.json
* Update package.json
---------
Co-authored-by: Christian Bromann <git@bromann.dev>
* (webdriverio): merge isDisplayed and isDisplayedWithinViewport (#11857)
* (webdriverio): merge isDisplayed and isDisplayedWithinViewport
* allow to specify withinViewport check in waitForDisplayed
* Migrating from got to fetch
* Migrate got to fetch in packages
* migrate got to fetch & update unit test
* doc update for proxy setup
* rebase and migrate got to fetch in browserstack
* Migrate hostname from 0.0.0.0 to localhost
* fix unit test by removing headers in safari driver
* fix smoke test: update nock to beta
* fix launch test for firefox
* fix unit test for startGeckodriver
* fix firefox executions in node 18
* Incorporating review comments
* fix component tests
* cleaning up RequestLibOptions
* Removing RequestLibOptions & incorporating other review comments
* use process from globalThis
---------
Co-authored-by: Erwin Heitzman <15839059+erwinheitzman@users.noreply.github.com>
Co-authored-by: Christian Bromann <git@bromann.dev>
* (@wdio/utils): seperate between common and node utils
* more cleanup
* test fixes
* adjust tests
* fix last test
* fix istanbul
* fix cucumber typing
* fix dirname for windows
* update snapshot
* (@wdio/cli): Replace yarn-install with custom package installer
* fix tests
* improvements after some manual e2e tests
* fix test
* fix unit test
* fix unit test
* (jasmine): bring back jasmine assertions
* add unit and smoke tests
* add smoke tests for different matcher types
* add smoke test for expectationResultHandler
* fix unit test
* fix type generation in windows
* fix import
* Replace shadow commands with WebDriver implementation
* move component testing examples into e2e test
* adjust component testing example
* push missing env file
* fall back to old behavior for Firefox
* replicate correct report structure with the latest allure core
* updated logs, screenshots and another attachments api
* update public methods
add new public methods
* update reporter methods up to existing specs
* update constants and api specs
* update suite specs
* api fixes
* utils fixes
* fix suites finishing logic for cucumber
remove legacy logic for steps cutting due the new allure api
incompability
* update cucumber and allure features specs
* update allure features specs
* update reporter methods
* remove some useless comments and code
* add allure custom steps functionality
* update api specs to write allure results to temp dir
* update allure docs
* fix readme type
* partial review fixes
* spec fixes according the review comments
fix duplication of test case labels
* move screenshot command detection method form reporter to utils
extract reporter state to separated class
* add specs for the reporter state
* add suite and package labels
* fix state specs and add new checks to it
* add specs for package label
* fix file property in allure fixtures
* fix after command hook behaviour
* move allure steps specs to separate file
* fix problem with duplicated labels and parameters
* add tests for suite labels tags util
* Support test coverage reporting and assertion
* implement per file treshold check
* add unit tests
* source map support
* add docs and clean up
* verify coverage as part of the test
* fix test in windows