For all new functionality teams have to use RTL and/or Jest to build unit or integration tests.
Resources: All UI developers will be utilizing RTL and Jest for creating tests with exception of Stripes Force team and developers who will be building UI end-2-end test suite (see below)
Tool Selection:
We are converting to mainstream testing tools adopted by React JS community
Real browser rendering does not required for UI module testing trerefore selection of RTL and Jest is appropriate
Onboarding new UI developers will be easier because we'll be employing tools that are commonly used outside of Folio project
Only RTL/Jest should be used across all UI modules. It will allow developers to switch work from one module to another without learning curve.
Transition:
Existing BigTest test cases have to be reimplemented (if applicable) with RTL/Jest according to priorities set by PO.
Teams have to maintain and execute BigTest tests until coverage of 80+% has been achieved with RTL/Jest.
Teams have to maintain 2 separate coverage reports for both BigTest and RTL/Jest
UI module build pipeline has to include additional step for RTL/Jest tests.
BigTest step can be removed from the pipeline only after RTL/Jest step is reporting 80%+ code coverage.
Stripes
All Stripes modules should use next release of BigTest.
Tool selection:
It is important to test Stripes components rendering in the real browser
BigTest has the best browser support as well as iOS
BigTest project has adequate functionality available to start work now
Allows testing of responsive design features as well as rendering on the iPad
Next version of Big Test requires no UI bundle instrumentation
Tests can be run against any UI bundle as long as URL access is available
Transition:
Stripes Force team has to migrate existing BigTest test suite to the new version.
Resources:
Only developers working with Stripes will need to learn how to use new version of BigTest.
Frontsite will allocate resources to assist with this transition
Replacement of NightmareJS End-2-End Tests
Replace NightmareJS (end-2-end) tests with next release of Big Test
Tool selection notes: (see tool selection notes for Stripes)
Transition:
Continue to maintain and execute Nightmare JS tests until BigTest test suite provides greater coverage in terms of functionality and test cases.
PO will select test cases from Bug Fest test plan to be automated.
Jenkins pipeline should execute BigTest tests against folio-testing system on the daily basis.
Test suite will be designed to run on any system that deploys platform-complete
Resources:
Zak needs to maintain NightmareJS test suite until we're ready to drop it.
Folio project will need to allocate UI developer(s) to implement BigTest test suite.
Frontsite will allocate resources to assist with creation of this test suite.
BigTest Considerations
BigTest tool is very promising. However, it is in the Beta phase of v1.0 release.
We need to utilize Big Test without overcommitting significant Folio dev resources
Approach was chosen to balance the need for browser based end to end tests and exposure to smaller, less mature tooling