А.Пономаренко. Домашние задания к курсам OTUS / Д/З к курсу React.js-2021-09 OTUS / Домашнее задание 9
Повысить стабильность приложения и реализовать базовый функционал
Создаём структуру state-приложения с использованием Redux. Разработку приложения ведем отталкиваясь от архитектуры https://github.com/erikras/ducks-modular-redux
Состояние приложения перенесно в Redux из state компонента AppStateManager.
Добавлены асинхронные акшены game.ts/loadState() и game.ts/saveState(), которые реализуют логику загрузки и сохранения состояния в LocalStorage.
Добавлен thunk middleware
Доработаны тесты, в т.ч. reducer и actions
--------------------------------|---------|----------|---------|---------|-------------------
File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
--------------------------------|---------|----------|---------|---------|-------------------
All files | 100 | 100 | 98.53 | 100 |
src | 100 | 100 | 100 | 100 |
consts.ts | 100 | 100 | 100 | 100 |
src/StorageService | 100 | 100 | 100 | 100 |
StorageService.ts | 100 | 100 | 100 | 100 |
src/components | 100 | 100 | 100 | 100 |
common.tsx | 100 | 100 | 100 | 100 |
src/components/AppRouter | 100 | 100 | 100 | 100 |
AppRouter.tsx | 100 | 100 | 100 | 100 |
src/components/AppStateManager | 100 | 100 | 94.74 | 100 |
AppStateManager.tsx | 100 | 100 | 94.74 | 100 |
src/components/AppStateView | 100 | 100 | 100 | 100 |
AppStateView.tsx | 100 | 100 | 100 | 100 |
src/components/AuthorizedHead | 100 | 100 | 100 | 100 |
AuthorizedHead.tsx | 100 | 100 | 100 | 100 |
src/components/Button | 100 | 100 | 100 | 100 |
Button.tsx | 100 | 100 | 100 | 100 |
src/components/Cell | 100 | 100 | 100 | 100 |
Cell.tsx | 100 | 100 | 100 | 100 |
src/components/DefineMode | 100 | 100 | 100 | 100 |
DefineMode.tsx | 100 | 100 | 100 | 100 |
src/components/DefineSpeed | 100 | 100 | 100 | 100 |
DefineSpeed.tsx | 100 | 100 | 100 | 100 |
src/components/FieldSize | 100 | 100 | 100 | 100 |
FieldSize.tsx | 100 | 100 | 100 | 100 |
src/components/GameField | 100 | 100 | 100 | 100 |
GameField.tsx | 100 | 100 | 100 | 100 |
src/components/GameSettings | 100 | 100 | 100 | 100 |
GameSettings.tsx | 100 | 100 | 100 | 100 |
src/components/GameUI | 100 | 100 | 100 | 100 |
GameUI.tsx | 100 | 100 | 100 | 100 |
src/components/LoginForm | 100 | 100 | 100 | 100 |
LoginForm.tsx | 100 | 100 | 100 | 100 |
src/components/SetFillPercent | 100 | 100 | 100 | 100 |
SetFillPercent.tsx | 100 | 100 | 100 | 100 |
src/store/ducks/game | 100 | 100 | 100 | 100 |
game.ts | 100 | 100 | 100 | 100 |
playFieldUtils.ts | 100 | 100 | 100 | 100 |
src/testFramework/lib | 100 | 100 | 100 | 100 |
reducer.ts | 100 | 100 | 100 | 100 |
--------------------------------|---------|----------|---------|---------|-------------------
Test Suites: 11 passed, 11 total
Tests: 69 passed, 69 total
Snapshots: 0 total
Time: 7.186 s
Ran all test suites.