A registration form must be built with the following fields:
- Name
- Password
All fields must be validated.
The form should have 3 status:
- Default, when form is not filled
- Processing, when data is submitting to api
- Success, when data is sent successfully to api
It is possible to create a fake timeout to simulate the request to the server using a dummy function or create a dummy endpoint and use it with Cypress with mocks.
- Using Jest, create a simple render/integration test to validate the form status.
- Using Cypress, create an automation test to verify the form success status.
- Code principles like:
- Clean Code
- KISS(keep it simple stupid)
- SOLID
- Design Patterns
- Conventional Commits(in English) & Commitlint(husky)
- Documentation onboarding(a README explaining how to setup, start, test & lint the project)
- Linter
- Prettier & Editorconfig
- Set package.json properties like(name, version, description, license, etc)
- Lock node engine to specific version used by project
- Source Map Explorer to watch build details
- DRY(Don't repeat yourself)
- Inheritance instead of composition
- Overengineering
- YAGNI(You aren't gonna need it)
- React
- TypeScript
- Material-UI
- Formik
- Webpack