apache / couchdb-fauxton

Fauxton is the new Web UI for CouchDB

Home Page:https://github.com/apache/couchdb-fauxton

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Consider replacing Nightwatch with Cypress

iamgollum opened this issue · comments

Cypress makes end to end testing easier to write and faster to execute. It is NOT a selenium based architecture but rather more native to the browser. I have used Cypress on many projects including in CI / CD. There are docker images and plenty of community support.

It would be my pleasure to lead an effort to replace Nightwatch with Cypress.

AssertJS Conference . - Part I

Part II talks about a new test pyramid with E2E and Unit Testing only - very interesting stuff!

GOAL

This will make testing easier for other contributors and can lead to revamping the entire code base to a more modern stack with higher test coverage and improved maintainability.

Cypress looks cool and I won't lie the nightwatch tests are tough to maintain. But I think we have a state where they are now pretty consistent. I would imagine that converting to cypress is probably around 6 Months of dedicated development time.

This will make testing easier for other contributors and can lead to revamping the entire code base to a more modern stack with higher test coverage and improved maintainability.

Testing isn't super easy but it's not that hard either, the Nightwatch tests combined with the jest tests give us pretty good code coverage already. So it's possible to iterate on the code and it should detect any breaking changes.

So you welcome to try and convert it but if you keen to get involved I would say the best place to get involved is to look and find any sections of code that are still using Backbone.Model or using the old flux library and convert those to using React and Redux. Those sections are the real legacy sections that we need to fix up.

@garrensmith sounds good. Ill be focusing on contributing to that effort and park this