There are lots of tools for writing Browser-automation tests in JavaScript, some integrating with test libs like mocha/jasmine/qunit, some that roll their own DSLs. Some examples:
Nightwatch
Zombie
Casper
Protractor
The Intern
Testium
I have project experience with most of these and can offer some advice and help on which to use (and why I currently tend to use none of them, in favor of Ruby & Capybara). That said, there are some interesting conversations to be had:
The perceived vs. actual benefit of JavaScripting all-the-things
The veritable graveyard of undermaintained and abandoned JS-based browser automation tools
The frustrations caused by the fact that Node.js only exposing async HTTP calls means that using the Selenium wire API requires a new async network request for each-and-every Selenium automation call. This can cause a ton of code organization pain without Promise-based abstractions all the way up.
There are lots of tools for writing Browser-automation tests in JavaScript, some integrating with test libs like mocha/jasmine/qunit, some that roll their own DSLs. Some examples:
I have project experience with most of these and can offer some advice and help on which to use (and why I currently tend to use none of them, in favor of Ruby & Capybara). That said, there are some interesting conversations to be had: