π ΠΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΎΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Β«ΠΠΠΠ£ ΠΠΠΠΠ‘ΠΠ¨ ΠΈΠΌ. Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈΒ». π
ΠΡΠΎΠ΅ΠΊΡ "ΠΠΠΠ£ ΠΠΠΠΠ‘ΠΠ¨ ΠΈΠΌ. Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ" ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΠ΄Π½ΠΎΡΡΡΠ°Π½ΠΈΡΠ½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ΅ Π² ΡΠ°ΠΌΠΊΠ°Ρ ΠΎΠ±ΡΡΠ΅Π½ΠΈΡ. ΠΠ°Π΄Π°ΡΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° - ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ° Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² ΠΈ ΡΡΡΡΠΊΡΡΡ Π΄Π°Π½Π½ΡΡ Ρ ΡΠ΅Π»ΡΡ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΈΡ ΡΠ°Π±ΠΎΡΡ. ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎ ΠΈΠ·ΡΡΠ°ΡΡ ΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΡΠ°Π±ΠΎΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ², ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΠ°Π·Π²ΠΎΡΠΎΡ ΡΡΡΠΎΠΊΠΈ, Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π€ΠΈΠ±ΠΎΠ½Π°ΡΡΠΈ, ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ° ΠΌΠ°ΡΡΠΈΠ²Π°. ΠΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² ΡΡΡΡΠΊΡΡΡΠ°Ρ Π΄Π°Π½Π½ΡΡ , ΡΠ°ΠΊΠΈΡ ΠΊΠ°ΠΊ ΡΡΠ΅ΠΊ, ΠΎΡΠ΅ΡΠ΅Π΄Ρ ΠΈ ΡΠ²ΡΠ·Π½ΡΠΉ ΡΠΏΠΈΡΠΎΠΊ.
ΠΠΎΡΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ Π½Π° gh-pages | ΠΠ°ΠΊΠ΅Ρ Π² Figma | Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅
- Π‘ΠΎΠ·Π΄Π°Π»Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΠΈΠ·ΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠΎΠ² Ρ ΠΏΠΎΡΠ°Π³ΠΎΠ²ΡΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° ΡΠ½ΠΈΡ-ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΡΠ½ΠΈΠΌΠΊΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² button ΠΈ circle Π° ΡΠ°ΠΊ ΠΆΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ° ΡΠ°Π·Π²ΠΎΡΠΎΡΠ° ΡΡΡΠΎΠΊΠΈ ΠΈ ΡΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΡΠ±ΠΎΡΠΎΠΌ ΠΈ ΠΏΡΠ·ΡΡΡΠΊΠΎΠΌ.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° E2E ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅: ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΏΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ, ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΡΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°.
π- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»Π° ΠΏΠ°ΡΡΠ΅ΡΠ½ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ π· Β«Π‘Π½ΠΈΠΌΠΎΠΊΒ» β (memento.ts) Π΄Π»Ρ ΠΏΠΎΠ²ΡΡΠ΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΠΎΡΡΠΈ ΠΊΠΎΠ΄Π° Π² ΡΠ»ΡΡΠ°ΡΡ Ρ ΠΏΡΠΎΡΡΡΠΌΠΈ ΡΡΡΡΠΊΡΡΡΠ°ΠΌΠΈ Π΄Π°Π½Π½ΡΡ ΠΈ Π°Π»Π³ΠΎΡΠΈΡΠΌΠ°ΠΌΠΈ.
π- ΠΠ·ΡΡΠΈΠ»Π° ΠΈ Π²Π½Π΅Π΄ΡΠΈΠ»Π° Π»ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Cypress
- ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Π²ΡΠ±ΠΎΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² - Π΄Π»Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ
ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌΡΡ
ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»Π° Π°ΡΡΠΈΠ±ΡΡ π
data-cy
β ΡΡΠΎ ΡΠ»ΡΡΡΠΈΠ»ΠΎ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠΈΡΠ°Π΅ΠΌΠΎΡΡΡ ΡΠ΅ΡΡΠΎΠ². ΠΡΠΈΠΌΠ΅Ρ - ΠΡΠΊΠ»ΡΡΠΈΠ»Π° β³
cy.wait
β Π½Π΅Π½ΡΠΆΠ½ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ Π² ΡΠ΅ΡΡΠ°Ρ , Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π°Π½ΠΈΠΌΠ°ΡΠΈΠΈ, Π·Π°Π²ΠΈΡΡΡΠ΅ΠΉ ΠΎΡ ΡΠ°ΠΉΠΌΠ°ΡΡΠΎΠ². ΠΡΠΈΠΌΠ΅Ρ - Π‘ΠΎΠ·Π΄Π°Π»Π° οΈπͺΠΊΠ°ΡΡΠΎΠΌΠ½ΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π΄Π»Ρ Cypress ΠΏΡΠΈΠΌΠ΅Ρ Π²
commands.ts
getDataCy
ΠΈgetAlias
: ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠΎ Π°ΡΡΠΈΠ±ΡΡΡdata-cy
ΠΈ ΠΏΡΠ΅Π²Π΄ΠΎΠ½ΠΈΠΌΡ.- ΠΡΠΎΠ²Π΅ΡΠΊΠ° ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ fieldset:
checkDisabledButtonsWithEmptyInput
,checkDisabledFieldsetAfterClickButton
,checkActivityButtonsWithNonEmptyInput
:
- Π―Π·ΡΠΊΠΈ:
HTML
CSS
TypeScript
- Π€ΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΈ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ:
Cypress
Jest
React Testing Library
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ:
Git
GitHub
GitHub Pages
- ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ Π΄Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈ ΡΠ±ΠΎΡΠΊΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
Node.js
Webpack
Yarn
Create React App
React Router
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π³ΠΈ:
-
ΠΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ:
git clone https://github.com/gudrum1983/algososh.git
-
ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°:
cd algososh
-
Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
yarn install
-
ΠΠ°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΎΠ΅ΠΊΡ:
yarn start
-
ΠΡΠΊΡΠΎΠΉΡΠ΅ http://localhost:3000 Π΄Π»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
ΠΠ»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΡΠ΅ΡΡΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
yarn test
ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ Node.js ΠΈ Π»ΡΠ±ΠΎΠΉ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΉ Π±ΡΠ°ΡΠ·Π΅Ρ.