data/js-template/11/meta.yaml (41 lines of code) (raw):
metadata:
scenario_id: 11
scenario_name: update_react
category: solution_migration
repository: todo_app_react
evaluation_steps:
completeness:
- Verify that there is an input field for creating a new todo. The creation should occur when the Enter key is pressed, and the value should be taken from the state and dispatched to the store.
- Ensure that todo items are displayed in a list according to the current filter.
- Ensure there is functionality that allows toggling the completion status of all todos.
- Verify that each todo item can be toggled, edited, or deleted.
- Ensure that editing a todo starts with a double click, submitting a todo occurs by pressing Enter, and clicking the Esc button resets the current editing to the initial value.
- Ensure that the footer of the application displays the count of active items, has filter functionality, and allows clearing completed items.
- Ensure that the footer includes a button to clear completed TODO items, which dispatches the corresponding action.
accuracy:
- Ensure the application does not contain unused imports or code.
- Ensure the codebase is structured and follows React best practices (state, hooks, effects).
- Ensure the application is free of memory leaks and unnecessary re-renders.
- Ensure the application is compatible with the latest version of React and TypeScript.
- Ensure the application is free of console errors and warnings.
- Ensure app does not access DOM elements to retrieve the values of text fields.
- Ensure app does not directly manipulate the DOM outside of React’s virtual DOM.
- Ensure app does not overuse refs for DOM access instead of React’s state and props.
- Ensure app does not have too many re-renders due to state or prop changes.
- Ensure the code is decomposed to the set of the components with using single responsibility
- Ensure the code does not contain any duplicates and follow DRY principles
- Verify app does not make API calls.
- Verify that the codebase does not contain any TODOs.
- Verify app does clean up timers, subscriptions, or event listeners in `useEffect`.
- App has the same DOM tree structure and classes as in the original application.
- Ensure that the code is split into separate components.
- Verify that the codebase is written in TypeScript.
- Ensure that TypeScript types are correctly defined and used throughout the code.
- Confirm that the codebase does not contain any syntax errors.
- Ensure that the `package.json` file is present.
- Verify the presence of a store configuration file.
- Confirm that the store configuration file uses Redux Toolkit.
- Verify that the application uses `createSlice` from Redux Toolkit to define actions and reducers for adding, toggling one and all, editing, deleting, clearing completed, and filtering TODO items.
- Confirm the use of `nanoid` for generating unique IDs.
- Check that the code includes a `Provider` wrapping the entire application.
- Confirm that the `Provider` is supplied with the store.