Unit and Integration Tests for Folio UI modules
- 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