chai-webdriverio icon indicating copy to clipboard operation
chai-webdriverio copied to clipboard

Add a 'dom' or 'elements' method to qualify assertions?

Open mltsy opened this issue 7 years ago • 0 comments

chai-webdriver uses a .dom flag to start the assertion chain, like this:

expect(...).dom.to.be.there

This library was originally designed without that, because it's a somewhat awkward token, syntactically. However, there are 2 good reasons for having some such unique flag to start the chain:

  1. It namespaces the assertions. If we had such a flag, we could use any name for our assertions (including exist, which we had to avoid, and call there)
  2. When chai-webdriverio is not defined, it would cause the test to fail even if the assertion is called without parenthesis. Without it, you can call .visible outside the scope of chai-webdriverio and have no failure, because .visible just returns undefined, like this: https://github.com/marcodejongh/chai-webdriverio/issues/37

Possible names for this flag:

  • .dom (to match 'chai-webdriverio`)
  • .wdio
  • .elements
  • .element (potentially, we could offer both elements and element, and use the respective webdriverio method)
  • .html ... ? This isn't quite right - I'm basically out of ideas that actually make sense :wink:

mltsy avatar Nov 14 '17 16:11 mltsy