Copy Placeholders for MenuItemReview pages; add to App.js/AppNavbar.js
Acceptance Criteria:
[ ] When you navigate to /menuitemreview/create in the URL bar,
there is page that allows the user to create a new MenuItemReview record.
[ ] When you enter data into the form and click the submit button,
if the data is valid, the data is sent to the server,
a new MenuItemReview record is created,and the user is routed to the
/menuitemreview route for the MenuItemReviewIndexPage page.
[ ] When you enter data into the form and click the submit button,
if the data is not valid,appropriate error messages are displayed,
the data is NOT sent to the server, a new MenuItemReview record is NOT created,
and the user remains on the menuitemreview/create page.
[ ] When you submit valid data to the page and click submit, a new valid database
entry is stored in the database. (You can verify this by using the swagger
endpoint to view the current data in the table.)
[ ] The PR description has step-by-step descriptions for testing the new page, along
with screenshots, so that someone reviewing the PR will know what to do to test
it, and what it is supposed to look like when it functions correctly.
[ ] The PR description has a link to the storybook entry for the new page.
Implementation Details
[ ] Before starting, refamiliarize yourself with the backend CRUD API endpoints for
MenuItemReview by looking at the swagger page. You are going to be copy/pasting
code from the Restaurant and UCSBDates components. Those use backend api endpoints
that are similar to the ones for MenuItemReview, but not identical. You will need
to know the exact name of the API endpoints for MenuItemReview in order to
be sure that your frontend code is calling the correct backend endpoints.
[ ] In MenuItemReviewCreatePage.js, replace the code from PlaceholderCreatePage.js
with code modelled after the files RestaurantCreatePage.js and/or UCSBDatesCreatePage.js
that is appropriate to your MenuItemReview table. Be sure to get the API endpoint names correct for your MenuItemReview table.
[ ] In MenuItemReviewCreatePage.test.js, replace the code from PlaceholderCreatePage.test.js
with code modelled after the files RestaurantCreatePage.test.js and/or UCSBDatesCreatePage.test.js
appropriate to your MenuItemReview table. Be sure to get the API endpoint names correct for your MenuItemReview table.
[ ] Under frontend/src/stories/pages/MenuItemReview/ create a file called MenuItemReviewCreatePage.stories.js
modelled after the files RestaurantCreatePage.stories.js and/or UCSBDatesCreatePage.stories.js.
Reminders (all from frontend directory):
Always start by setting your node version with nvm use 20.17.0
To run storybook locally: npm run storybook.
To run tests locally: npm test.
Quickly test coverage locally: npm run coverage
Check linting locally: npx eslint --fix .
Check mutation coverage locally (slow): npx stryker run
Check mutation coverage of single file (faster): npx stryker run -m src/main/pages/MenuItemReview/MenuItemReviewCreatePage.js
What to do next
Do a PR (following the usual steps).
Check for other PRs
Start work on "Index Page for MenuItemReview plus tests and stories"(following the usual steps for a new issue)
Dependencies
Complete the following issues first:
MenuItemReview
pages; add to App.js/AppNavbar.jsAcceptance Criteria:
[ ] When you navigate to
/menuitemreview/create
in the URL bar, there is page that allows the user to create a new MenuItemReview record.[ ] When you enter data into the form and click the submit button, if the data is valid, the data is sent to the server, a new MenuItemReview record is created,and the user is routed to the
/menuitemreview
route for theMenuItemReviewIndexPage
page.[ ] When you enter data into the form and click the submit button, if the data is not valid,appropriate error messages are displayed, the data is NOT sent to the server, a new MenuItemReview record is NOT created, and the user remains on the
menuitemreview/create
page.[ ] When you submit valid data to the page and click submit, a new valid database entry is stored in the database. (You can verify this by using the swagger endpoint to view the current data in the table.)
[ ] The PR description has step-by-step descriptions for testing the new page, along with screenshots, so that someone reviewing the PR will know what to do to test it, and what it is supposed to look like when it functions correctly.
[ ] The PR description has a link to the storybook entry for the new page.
Implementation Details
[ ] Before starting, refamiliarize yourself with the backend CRUD API endpoints for
MenuItemReview
by looking at the swagger page. You are going to be copy/pasting code from theRestaurant
andUCSBDates
components. Those use backend api endpoints that are similar to the ones forMenuItemReview
, but not identical. You will need to know the exact name of the API endpoints forMenuItemReview
in order to be sure that your frontend code is calling the correct backend endpoints.[ ] In
MenuItemReviewCreatePage.js
, replace the code fromPlaceholderCreatePage.js
with code modelled after the filesRestaurantCreatePage.js
and/orUCSBDatesCreatePage.js
that is appropriate to yourMenuItemReview
table. Be sure to get the API endpoint names correct for yourMenuItemReview
table.[ ] In
MenuItemReviewCreatePage.test.js
, replace the code fromPlaceholderCreatePage.test.js
with code modelled after the filesRestaurantCreatePage.test.js
and/orUCSBDatesCreatePage.test.js
appropriate to yourMenuItemReview
table. Be sure to get the API endpoint names correct for yourMenuItemReview
table.[ ] Under
frontend/src/stories/pages/MenuItemReview/
create a file calledMenuItemReviewCreatePage.stories.js
modelled after the filesRestaurantCreatePage.stories.js
and/orUCSBDatesCreatePage.stories.js
.Reminders (all from
frontend
directory):nvm use 20.17.0
npm run storybook
.npm test
.npm run coverage
npx eslint --fix .
npx stryker run
npx stryker run -m src/main/pages/MenuItemReview/MenuItemReviewCreatePage.js
What to do next
MenuItemReview
plus tests and stories"(following the usual steps for a new issue)