e885288
Change test id name for delivery fee.
78d5489
Change logic to exclude 7 pm as the rush hour
d874377
Clear redux when cancel button is clicked
6830932
Use dayjs in unit tests to mitigate time zone problem and changeContentContainer
style
11d588c
Add unit tests and personal reflection
92fbd5c
Change style and deploy to render
86a87e8
AddContentContainer
- All pages are now included in the container with the same style
- Unit tests are updated
86a87e8
Fix state update
91a46a9
Fix multiple bugs- Add sleep in development docker to prevent race issues
- Delete unused html code
d531eb7
Improve documentation
2dd7c77
Add docker file for production
618f0ab
Split calculator page and confirmation page into reusable components- Split
Calculator
intoCalculator
andConfirmation
- Use
Header
andConfirmItem
to display confirmation page - Add unit tests for the new pages and components
- Split
77e1590
Change input validation- Validation now happens only when the user has finished typing and clicked out of the text box
- The submit button is disabled until all text boxes receive correct input (positive integer or float number and order time is later than the current time)
- All unit and integration have been updated
- e2e tests include edge cases
bc3349f
Change front page style
bc3349f
Add README for local build instructions
1fc5a23
Add e2e tests.- More
data-test-id
s are added for easier testing - Use Cypress to perform e2e tests
- More
f99cd17
UseDesktopDateTimePicker
instead ofDateTimePicker
for CI consistency1f3d9b9
Fix eslint issue for cypress config file
0136517
Enable fee calculation.- User can confirm input or make further changes after clicking submit button on the front page
- All the inputs, along with the calculated fee, are displayed on a separate page at
/order
- Unit tests are written to test multiple combinations of input
- Change font family to
Hanken Grotesk
, clean up pages and add Wolt logo
eefa91d
Change time in unit tests.- Initial unit tests can run locally, but fail to run in CI pipeline. Possible reason: different time zone causing the calculation to fail to determine "Friday rush"
a027f20
Add confirmation page and data validation.- Submit button is disabled until all fields have been filled
- An error message warning about empty input is shown if the input box is clicked without typing valid value
- A summary page is shown when the button is clicked to confirm the input
e203bbf
Add Redux for state management.- Add
calculatorSlice
for updating each value when finished typing - Add unit tests for redux
- Add
ad13e52
AddStyledDateTimePicker
component.- Refactor code structure according to Redux recommendation (feature folder). The project is now structured according to feature. Each feature contains multiple components that are used exclusively by the feature.
StyledDateTimePicker
enables inputting date and time by either directly typing into the box or selecting from a date and time selector.- Unit test is written for the new component.
- Improve accessibility by adding visual labels and matching them with aria labels.
596f8e2
Improve accessibility and CI.- Add
<fieldset />
for better form logic - Add
aria-label
for text field labeling - Enable tests in CI
- Add
639b3ad
AddHookedTextField
component.- Component can accept field name and float/int number
- Perform validation when value is changed. If input does not comply with the intended type, error message is displayed with the latest change disregarded. E.g. in number 1234. => 1234, in float 1234.+ => 1234.
- Integration test for
HookedTextField
and the customuseField
hook
5d232f0
Project initial setup.- Coding language: Typescript
- Front end framework: React
- UI library: Material UI
- State management: Redux
- Testing: Jest, React Testing Library
- Code formatting: Eslint (with Airbnb standard), Prettier
- CI: Github Actions