diff --git a/docs/src/content/docs/ru/challenges/performance/12-scroll-cd.md b/docs/src/content/docs/ru/challenges/performance/12-scroll-cd.md
new file mode 100644
index 0000000..432c34f
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/performance/12-scroll-cd.md
@@ -0,0 +1,40 @@
+---
+title: π ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
+description: ΠΠ°Π΄Π°Π½ΠΈΠ΅ 12 ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²Π° ΡΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΏΡΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠ΅
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 12
+command: performance-scroll-cd
+sidebar:
+ order: 107
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π Angular Π΅ΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Zone.js, ΠΊΠΎΡΠΎΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΌΠ°Π³ΠΈΠΈ, ΡΡΠΎΠ±Ρ ΡΠΏΡΠΎΡΡΠΈΡΡ ΠΆΠΈΠ·Π½Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Zone.js ΠΌΠΎΠ½ΠΊΠΈΠΏΠ°ΡΡΠΈΡ Π²ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΡ DOM, ΡΡΠΎΠ±Ρ ΠΏΠ΅ΡΠ΅ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΊΠΎΠ³Π΄Π° ΡΡΠΎ-ΡΠΎ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π²Π½ΡΡΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΡ Π½Π΅ Π½ΡΠΆΠ½ΠΎ Π²ΡΡΡΠ½ΡΡ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
+
+ΠΠ΄Π½Π°ΠΊΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Zone.js Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π³ΠΎΡΠ°Π·Π΄ΠΎ Π±ΠΎΠ»ΡΡΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡΠ΅ΠΌ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠΎΠ³Π΄Π° Π²Ρ ΠΏΡΠΎΡΠ»ΡΡΠΈΠ²Π°Π΅ΡΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΡΠΎΠ±ΡΡΠΈΠ΅ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ Π²ΡΠ·ΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΡΠΈΠΊΠ» ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ.
+
+Π ΡΡΠΎΠΌ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΈ Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ ΠΏΠΎΠ·ΠΈΡΠΈΠΈ ΠΏΡΠΎΠΊΡΡΡΠΊΠΈ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΠΈΠ»ΠΈ ΡΠΊΡΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΡΠ΅ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠΈΠΊΠ»Ρ ΠΈΠ·Π±ΡΡΠΎΡΠ½Ρ.
+
+Π§ΡΠΎΠ±Ρ Π»ΡΡΡΠ΅ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Angular Dev Tools.
+
+:::note
+ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΡΠΈΡΠ΅ [Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ](/challenges/performance/).
+:::
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π΄Π΅ΡΠ°Π»Π΅ΠΉ ΠΎ Π·Π°Π³ΡΡΠ·Π½Π΅Π½ΠΈΠΈ Π·ΠΎΠ½ ΠΈ ΡΠΏΠΎΡΠΎΠ±Π°Ρ
Π΅Π³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ [Π·Π΄Π΅ΡΡ](https://angular.io/guide/change-detection-zone-pollution).
+
+Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
+
+
+
+## Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
+
+ΠΠ°ΡΠ° ΡΠ΅Π»Ρ Π² ΡΡΠΎΠΌ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΈ - ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π²ΡΠ΅Ρ
ΠΈΠ·Π±ΡΡΠΎΡΠ½ΡΡ
ΡΠΈΠΊΠ»ΠΎΠ² ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ.
+
+## ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅:
+
+ΠΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΠΎ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ Zone.js. ΠΡΠ»ΠΈ ΡΡΠΎΡ ΠΊΠΎΠ΄ ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π±ΠΎΠ»ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΈ Π²Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΠ΅ Zone.js, Π²Ρ Π±Π΅Π· ΡΠΎΠΌΠ½Π΅Π½ΠΈΡ ΡΠ»ΠΎΠΌΠ°Π΅ΡΠ΅ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
diff --git a/docs/src/content/docs/ru/challenges/performance/37-ngfor-biglist.md b/docs/src/content/docs/ru/challenges/performance/37-ngfor-biglist.md
new file mode 100644
index 0000000..3624ba9
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/performance/37-ngfor-biglist.md
@@ -0,0 +1,37 @@
+---
+title: π ΠΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠΏΠΈΡΠΊΠΎΠ²
+description: ΠΠ°Π΄Π°Π½ΠΈΠ΅ 37 ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠΏΠΈΡΠΊΠΎΠ²
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 37
+command: performance-ngfor-biglist
+sidebar:
+ order: 117
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΈΠ· 100 000 ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ, Π½Π°ΠΆΠ°Π² Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ **loadList**. ΠΡΠ»ΠΈ Π²Ρ ΠΎΡΠΊΡΠΎΠ΅ΡΠ΅ ΠΏΠ°Π½Π΅Π»Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome, Π½Π°ΠΆΠ°Π² **F12**, ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Source ΠΈ ΡΠ°Π·Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΡΡΠΎΠ±Ρ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΡΠΏΠΈΡΠΎΠΊ, Π²Ρ Π·Π°ΠΌΠ΅ΡΠΈΡΠ΅, ΡΡΠΎ Π²ΡΠ΅ 100 000 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² DOM, Ρ
ΠΎΡΡ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠΊΠΎΠ»ΠΎ 20 ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π² Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ. ΠΡΠΎΡ ΠΏΡΠΎΡΠ΅ΡΡ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΎΡΠ΅Π½Ρ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ ΡΠΏΠΈΡΠΎΠΊ.
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Angular DevTool, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π½Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²Π½ΡΡΡΠΈ Π½Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. Π― ΠΏΠΎΠΊΠ°ΠΆΡ Π²Π°ΠΌ, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ Π²ΠΈΠ΄Π΅ΠΎ.
+
+
+
+:::note
+ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ, ΡΠ½Π°ΡΠ°Π»Π° ΠΏΡΠΎΡΡΠΈΡΠ΅ [Π²Π²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ](/challenges/performance/) ΠΈ Π²Π΅ΡΠ½ΠΈΡΠ΅ΡΡ ΠΏΠΎΡΠ»Π΅ ΡΡΠΎΠ³ΠΎ.
+:::
+
+## Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ ΡΡΠΎΠ³ΠΎ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ - ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ Π»ΡΡΡΡΡ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π±ΠΎΠ»ΡΡΠΈΡ
ΡΠΏΠΈΡΠΊΠΎΠ² ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ².
+
+## ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠΈ:
+
+
+ ΠΠΎΠ΄ΡΠΊΠ°Π·ΠΊΠ° 1
+
+ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠ²Π΅ΡΠ΅Π½Ρ, Ρ ΡΠ΅Π³ΠΎ Π½Π°ΡΠ°ΡΡ, Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ [Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Angular CDK ΠΎ Π²ΠΈΡΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ](https://material.angular.io/cdk/scrolling/overview).
+
+
diff --git a/docs/src/content/docs/ru/challenges/performance/index.mdx b/docs/src/content/docs/ru/challenges/performance/index.mdx
new file mode 100644
index 0000000..2a7236e
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/performance/index.mdx
@@ -0,0 +1,51 @@
+---
+title: ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Angular-Π°
+prev: false
+next: false
+contributors:
+ - Dinozavvvr
+description: Π£Π·Π½Π°ΠΉΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Angular DevTools Π΄Π»Ρ Chrome.
+noCommentSection: true
+sidebar:
+ order: 1
+---
+
+import { LinkCard } from '@astrojs/starlight/components';
+
+Π ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠΉ ΠΏΠΎ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π²Ρ ΡΠ·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΈ ΡΠ»ΡΡΡΠΈΡΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Angular.
+
+ΠΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΠΏΡΠΈΡΡΡΠΏΠΈΡΡ ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΡΡΠ°Π½ΠΈΡ, Ρ ΠΏΡΠΈΠ³Π»Π°ΡΠ°Ρ Π²Π°Ρ ΡΠΊΠ°ΡΠ°ΡΡ [ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Angular DevTools Π΄Π»Ρ Chrome](https://chrome.google.com/webstore/detail/angular-devtools/ienfalfjdbdpebioblfackkekamfmbnh), Π΅ΡΠ»ΠΈ Π²Ρ Π΅ΡΠ΅ ΡΡΠΎΠ³ΠΎ Π½Π΅ ΡΠ΄Π΅Π»Π°Π»ΠΈ.
+
+ΠΡΠΎ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ, ΡΡΠΎ ΠΎΡΠ΅Π½Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π΄Π»Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ ΠΌΠ΅ΡΡ, Π³Π΄Π΅ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ.
+
+## ΠΠ°ΠΊ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ
+
+ΠΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Angular Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΡΡΠ°Π½ΠΈΡΡ, Π½Π°ΠΆΠ°Π² F12, ΡΡΠΎ ΠΎΡΠΊΡΠΎΠ΅Ρ ΠΠ½ΡΡΡΡΠΌΠ΅Π½ΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Chrome. ΠΠ°ΡΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ Angular. ΠΡΡΡΠ΄Π° Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ Π²ΠΊΠ»Π°Π΄ΠΊΡ Profiler, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½ΠΈΠΆΠ΅.
+
+
+
+Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ²ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ Π·Π°ΠΏΠΈΡΠΈ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈΠ³ΡΠ°ΡΡ Ρ Π²Π°ΡΠΈΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠΎΠ³Π΄Π° ΡΡΠ°Π±Π°ΡΡΠ²Π°Π΅Ρ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠΎΠ²ΡΠ²Π°ΡΡΡΡ.
+
+:::tip[Π£Π·Π½Π°ΠΉΡΠ΅ Π±ΠΎΠ»ΡΡΠ΅]
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ·Π½Π°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π½Π° [ΡΡΡΠ°Π½ΠΈΡΠ΅ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ](https://angular.io/guide/devtools).
+:::
+
+Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Angular DevTool, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΈΡΠΏΡΡΠ°Π½ΠΈΠ΅ ΠΈ ΡΠ΅ΡΠΈΡΡ Π΅Π³ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
+
+
+
+
+
+
diff --git a/docs/src/content/docs/ru/challenges/rxjs/11-bug-chaining-operator.md b/docs/src/content/docs/ru/challenges/rxjs/11-bug-chaining-operator.md
new file mode 100644
index 0000000..18cd74e
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/rxjs/11-bug-chaining-operator.md
@@ -0,0 +1,31 @@
+---
+title: π ΠΡΠΈΠ±ΠΊΠ° Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ΅ Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ° RxJS
+description: ΠΠ°Π΄Π°ΡΠ° 11 ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΡΡΡΠ°Π½Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π² RxJS ΠΈΠ·-Π·Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠΎΠ² Π²ΡΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ΄ΠΊΠ°
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 11
+command: rxjs-pipe-bug
+sidebar:
+ order: 114
+---
+
+ΠΠ°Π²Π°ΠΉΡΠ΅ ΠΏΠΎΠ³ΡΡΠ·ΠΈΠΌΡΡ Π² ΡΠ΄ΠΈΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΠΌΠΈΡ RxJs.
+
+ΠΡΠΎΡ Π²ΡΠ·ΠΎΠ² Π²Π΄ΠΎΡ
Π½ΠΎΠ²Π»Π΅Π½ ΡΠ΅Π°Π»ΡΠ½ΡΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠΎΠΌ.
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+### ΠΡΡΠΎΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ
+
+ΠΠ°ΠΌ Π½ΡΠΆΠ½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ `Π‘ΡΠ°ΡΡΡ`. ΠΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° Π½Π΅Π΅, ΠΌΡ ΡΠ΄Π°Π»ΡΠ΅ΠΌ Π²ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΡ Ρ ΡΡΠΎΠΉ `Π‘ΡΠ°ΡΡΠ΅ΠΉ` Π² Π½Π°ΡΠ΅ΠΉ Π±Π°Π·Π΅ Π΄Π°Π½Π½ΡΡ
_(Π€Π΅ΠΉΠΊΠΎΠ²Π°Ρ ΠΠ Π² Π½Π°ΡΠ΅ΠΌ ΡΠ»ΡΡΠ°Π΅)_. ΠΠ°ΠΊΠΎΠ½Π΅Ρ, ΠΌΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌ **ΠΡΠ΅ [ΡΡΠ°ΡΡΠΈ] Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ** Π² ΡΠ»ΡΡΠ°Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ **ΠΡΠΈΠ±ΠΊΠ°: ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
[ΡΡΠ°ΡΠ΅ΠΉ] Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ** Π΅ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΠΎΠ±ΡΠ΅ΠΊΡΠΎΠ² Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ.
+
+### ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ:
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π² Π½Π°ΡΡ ΠΠ Π΄Π»Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΎΠ΄ΠΈΠ½ ΠΎΠ±ΡΠ΅ΠΊΡ Π·Π° ΡΠ°Π·. ΠΠ ΠΎΡΠ²Π΅ΡΠΈΡ true, Π΅ΡΠ»ΠΈ Π΄Π°Π½Π½ΡΠ΅ Π±ΡΠ»ΠΈ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΡΠ΄Π°Π»Π΅Π½Ρ, ΠΈ false Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
+
+### Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
+
+ΠΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²ΡΠΈΠΊΠΎΠ² ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎΠ± **ΠΎΡΠΈΠ±ΠΊΠ΅**. ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠ΅Π³Π΄Π° ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°Π΅Ρ **ΠΡΠ΅ [ΡΠ΅ΠΌΡ] Π±ΡΠ»ΠΈ ΡΠ΄Π°Π»Π΅Π½Ρ**, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ.
+
+π ΠΠ°ΠΉΠ΄ΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ ΠΈ ΠΈΡΠΏΡΠ°Π²ΡΡΠ΅ Π΅Π΅.
diff --git a/docs/src/content/docs/ru/challenges/rxjs/38-rxjs-catch-error.md b/docs/src/content/docs/ru/challenges/rxjs/38-rxjs-catch-error.md
new file mode 100644
index 0000000..9e25662
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/rxjs/38-rxjs-catch-error.md
@@ -0,0 +1,35 @@
+---
+title: π’ catchError
+description: ΠΠ°Π΄Π°ΡΠ° 38 ΠΏΠΎΡΠ²ΡΡΠ΅Π½Ρ ΠΈΠ·ΡΡΠ΅Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ Observable.
+author: devesh-chaudhari
+command: rxjs-catch-error
+contributors:
+ - Dinozavvvr
+challengeNumber: 38
+sidebar:
+ order: 14
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+### ΠΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅
+
+ΠΠ°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠΎΡΠΌΡ Ρ ΠΏΠΎΠ»Π΅ΠΌ Π²Π²ΠΎΠ΄Π° ΡΠ΅ΠΊΡΡΠ° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ "ΠΠΎΠ»ΡΡΠΈΡΡ". ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΠΎΠ»ΡΡΠΈΡΡ" Π΄Π°Π½Π½ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΠΊΠ°ΡΡΡΡ ΠΈΠ· [Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ API](https://jsonplaceholder.typicode.com/).
+
+ΠΠΎΡΡΠ΅ΠΊΡΠ½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΎΡΠ²Π΅ΡΠ° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ: posts, comments, albums, photos, todos ΠΈ users. ΠΡΠ±ΡΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠΈΠ²Π΅Π΄ΡΡ ΠΊ ΠΎΡΠΈΠ±ΠΊΠ΅.
+
+### ΠΡΠΈΠ±ΠΊΠ°
+
+Π Π½Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π° ΠΎΡΠΈΠ±ΠΊΠ°. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΠΌΠΎΠ³ΡΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π΄Π°Π½Π½ΡΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎ ΡΠ΅Ρ
ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½ Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΡΠΉ Π·Π°ΠΏΡΠΎΡ. ΠΠΎΡΠ»Π΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΎΡΠ²Π΅ΡΠ° ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π½Π΅ ΠΌΠΎΠ³ΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π·Π°ΠΏΡΠΎΡΡ.
+
+### ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅
+
+ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡΠ° [`catchError`](https://rxjs.dev/api/operators/catchError). ΠΡΠ»ΠΈ ΠΎΠ½ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²ΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π·Π°Π²Π΅ΡΡΠ΅Π½Π°, ΡΡΠΎ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
Π·Π°ΠΏΡΠΎΡΠΎΠ². Π¦Π΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΡΠΎΡ
ΡΠ°Π½ΠΈΡΡ ΠΎΠ±ΡΡΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠΊΡ, ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
ΠΎΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΡ
Observable.
+
+## Π£ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ - ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΎΡ catchError Π΄Π»Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠ°ΠΌΠΈ Π²Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΠΎΡΠΎΠΊΠ° Rxjs.
+
+## ΠΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ
+
+ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΆΡΡΠ½Π°Π»ΠΈΡΠΎΠ²Π°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅/ΠΎΡΠΈΠ±ΠΊΡ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ "ΠΠΎΠ»ΡΡΠΈΡΡ".
diff --git a/docs/src/content/docs/ru/challenges/testing/17-router.md b/docs/src/content/docs/ru/challenges/testing/17-router.md
new file mode 100644
index 0000000..31f112c
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/17-router.md
@@ -0,0 +1,27 @@
+---
+title: π Π ΠΎΡΡΠ΅Ρ
+description: ΠΠ°Π΄Π°ΡΠ° 17 ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ΅ΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π ΠΎΡΡΠ΅ΡΠ°
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 17
+command: testing-router-outlet
+sidebar:
+ order: 108
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π£ Π½Π°Ρ Π΅ΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΡΠΎΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡ Π΄ΠΎΡΡΡΠΏΠ½ΡΠ΅ ΠΊΠ½ΠΈΠ³ΠΈ Π΄Π»Ρ Π²ΡΠ΄Π°ΡΠΈ Π² Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅. ΠΡΠ»ΠΈ ΠΊΠ½ΠΈΠ³Π°, ΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΈΡΠ΅ΡΠ΅, Π΄ΠΎΡΡΡΠΏΠ½Π°, Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ ΠΊΠ½ΠΈΠ³Ρ(ΠΈ), Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΏΠΎΠΏΠ°Π΄Π΅ΡΠ΅ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΠΎΡΠΈΠ±ΠΊΠΈ.
+
+Π€Π°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `app.component.spec.ts` ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ², Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx test testing-router-outlet`. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Jest Runner](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner), ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ, ΡΠ΅Π»ΠΊΠ°Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ `Run` Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ `describe` ΠΈΠ»ΠΈ `it`.
+
+ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Cypress Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° `app.component.cy.ts` ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx component-test testing-router-outlet` Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³ `--watch`, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
+
+# ΠΠ°Π΄Π°Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ - ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library ΠΈ Cypress Component Testing.
+
+:::note
+Π― ΡΠΎΠ·Π΄Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² `it`, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅.
+:::
diff --git a/docs/src/content/docs/ru/challenges/testing/18-nested-comp.md b/docs/src/content/docs/ru/challenges/testing/18-nested-comp.md
new file mode 100644
index 0000000..4635ad5
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/18-nested-comp.md
@@ -0,0 +1,31 @@
+---
+title: π ΠΠ»ΠΎΠΆΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ
+description: ΠΠ°Π΄Π°Π½ΠΈΠ΅ 18 ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 18
+command: testing-nested
+sidebar:
+ order: 109
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, Π²Π²Π΅Π΄Π΅Π½Π½ΡΠΉ Π² ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π½Π° ΡΠ΅ΠΉΠΊΠΎΠ²ΡΠΉ Π±ΡΠΊΡΠ½Π΄.
+ΠΡΠ»ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π²Π²Π΅Π΄Π΅Π½ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΎΡΠΏΡΠ°Π²ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ, Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ ΠΎΡΠΈΠ±ΠΊΡ, ΠΈ Π·Π°ΠΏΡΠΎΡ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΏΡΠ°Π²Π»Π΅Π½.
+ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΎ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ². `ChildComponent` - ΡΡΠΎ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ ΡΠ΅ΡΡΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°: `ResultComponent`, `ButtonComponent`, `InputComponent` ΠΈ `ErrorComponent`. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠΈΠΊ, Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ° Π½Π°ΡΠΈΡ
ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π½ΠΈΡΠ΅Π³ΠΎ Π½Π΅ ΠΌΠ΅Π½ΡΠ΅Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡ, ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ ΡΡΡΡΠΊΡΡΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ², ΠΈ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΡΡ. ΠΠΎΡ ΡΠ΅Π»Ρ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΡ
ΡΠ΅ΡΡΠΎΠ². ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΡΠ΅ΡΡΠΈΡΡΠΉΡΠ΅ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ!!!.
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ Π½ΠΈΠΌ, Π·Π°ΠΏΡΡΡΠΈΠ²: `npx nx serve testing-nested`.
+
+Π€Π°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `child.component.spec.ts` ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ², Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx test testing-nested`. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Jest Runner](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner), ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ, ΡΠ΅Π»ΠΊΠ°Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ `Run` Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ `describe` ΠΈΠ»ΠΈ `it`.
+
+ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Cypress Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° `child.component.cy.ts` ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx component-test testing-nested` Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³ `--watch`, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
+
+# ΠΠ°Π΄Π°Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ - ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library ΠΈ Cypress Component Testing.
+
+:::note
+Π― ΡΠΎΠ·Π΄Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² `it`, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅.
+:::
diff --git a/docs/src/content/docs/ru/challenges/testing/19-input-output.md b/docs/src/content/docs/ru/challenges/testing/19-input-output.md
new file mode 100644
index 0000000..1d713cd
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/19-input-output.md
@@ -0,0 +1,29 @@
+---
+title: π ΠΠ²ΠΎΠ΄ ΠΡΠ²ΠΎΠ΄
+description: ΠΠ°Π΄Π°ΡΠ° 19 ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠ²ΠΎΠ΄Π° ΠΈ ΠΡΠ²ΠΎΠ΄Π°
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 19
+command: testing-input-output
+sidebar:
+ order: 110
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅-ΡΡΠ΅ΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ ΠΈΠ»ΠΈ ΡΠΌΠ΅Π½ΡΡΠ°Π΅Ρ ΡΠΈΡΠ»ΠΎ. `CounterComponent` ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ `@Input` ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°Ρ ΡΡΠ΅ΡΡΠΈΠΊΠ° ΠΊΠ°ΠΊ `@Output`, ΠΊΠΎΠ³Π΄Π° ΠΌΡ Π½Π°ΠΆΠΈΠΌΠ°Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ **Send**. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΠΌΡ ΡΠ΅ΡΡΠΈΡΡΠ΅ΠΌ Π½Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠΈΠΊ, Ρ Π½Π°Ρ Π΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΡΠΎΠ»ΡΠΊΠΎ ΠΊ Π½Π°ΡΠΈΠΌ Π²Ρ
ΠΎΠ΄Π½ΡΠΌ Π΄Π°Π½Π½ΡΠΌ ΠΈ ΠΌΡ ΡΠ»ΡΡΠ°Π΅ΠΌ Π²ΡΡ
ΠΎΠ΄Π½ΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΠΏΠΎΠ»Π°Π³Π°ΡΡΡΡ Π½Π° Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ!!!
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ Π½ΠΈΠΌ, Π·Π°ΠΏΡΡΡΠΈΠ²: `npx nx serve testing-input-output`.
+
+Π€Π°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `counter.component.spec.ts` ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ², Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx test testing-input-output`. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Jest Runner](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner), ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ, ΡΠ΅Π»ΠΊΠ°Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ `Run` Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ `describe` ΠΈΠ»ΠΈ `it`.
+
+ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Cypress Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° `child.component.cy.ts` ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx component-test testing-input-output` Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³ `--watch`, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
+
+# ΠΠ°Π΄Π°Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ - ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library ΠΈ Cypress Component Testing.
+
+:::note
+Π― ΡΠΎΠ·Π΄Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² `it`, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅.
+:::
diff --git a/docs/src/content/docs/ru/challenges/testing/20-modal.md b/docs/src/content/docs/ru/challenges/testing/20-modal.md
new file mode 100644
index 0000000..aedd113
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/20-modal.md
@@ -0,0 +1,33 @@
+---
+title: π ΠΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ
+description: ΠΠ°Π΄Π°ΡΠ° 20 ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΠΎΠ΄Π°Π»ΡΠ½ΡΡ
ΠΎΠΊΠ½
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 20
+command: testing-modal
+sidebar:
+ order: 111
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π ΡΡΠΎΠΌ Π½Π΅Π±ΠΎΠ»ΡΡΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ Π²Π°Ρ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ Π²Π²ΠΎΠ΄Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²Π²Π΅ΡΡΠΈ ΠΈΠΌΡ, ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠ° **Confirm** Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΡΠΌΡ.
+ΠΡΠ»ΠΈ Π²Ρ Π²Π²ΠΎΠ΄ΠΈΡΠ΅ ΠΈΠΌΡ, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ; Π² ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ.
+Π ΠΌΠΎΠ΄Π°Π»ΡΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ, Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ ΠΊΠ½ΠΎΠΏΠΊΡ **Confirm**, ΠΏΠΎΡΠ²ΠΈΡΡΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠΎΡΠΌΡ. ΠΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ **Cancel**, Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΎ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅.
+
+Π¦Π΅Π»Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ - ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄Π°Π»ΡΠ½ΡΠ΅ ΠΎΠΊΠ½Π° Π²Π½ΡΡΡΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°ΠΊ ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ end-to-end ΡΠ΅ΡΡ. ΠΡΠΎ ΠΎΠ·Π½Π°ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ `AppComponent` ΠΊΠ°ΠΊ ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠΈΠΊ ΠΈ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°ΡΡ Π½Π° ΡΠΎΠ±ΡΡΠΈΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅. ΠΠ΅ ΡΠ»Π΅Π΄ΡΠ΅Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ. Π Π°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ e2e ΡΠ΅ΡΡΠΎΠΌ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠ΅ΡΡΠΎΠΌ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Π»ΡΠ²Π°ΡΡ Π²ΡΠ΅ Π²ΡΠ·ΠΎΠ²Ρ API. _(ΠΡΠ΅ http-Π·Π°ΠΏΡΠΎΡΡ ΡΠ°Π»ΡΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½Ρ Π²Π½ΡΡΡΠΈ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ ΡΠ΅Ρ
ΡΡΠΎ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΡΡ Π² ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.)_
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ, Π·Π°ΠΏΡΡΡΠΈΠ²: `npx nx serve testing-modal`.
+
+Π€Π°ΠΉΠ» Ρ ΠΈΠΌΠ΅Π½Π΅ΠΌ `app.component.spec.ts` ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π²Π°ΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library. Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π½Π°Π±ΠΎΡΡ ΡΠ΅ΡΡΠΎΠ², Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx test testing-modal`. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Jest Runner](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner), ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ, ΡΠ΅Π»ΠΊΠ°Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ `Run` Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ `describe` ΠΈΠ»ΠΈ `it`.
+
+ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Cypress Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠ΅ΡΡΡ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΉΠ»Π° `app.component.cy.ts` ΠΈ Π·Π°ΠΏΡΡΠΊΠ°ΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ `npx nx component-test testing-modal` Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π½Π°Π±ΠΎΡΠΎΠ² ΡΠ΅ΡΡΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³ `--watch`, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
+
+# ΠΠ°Π΄Π°Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ - ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing Library ΠΈ Cypress Component Testing.
+
+:::note
+Π― ΡΠΎΠ·Π΄Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² `it`, Π½ΠΎ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅.
+:::
diff --git a/docs/src/content/docs/ru/challenges/testing/24-harness-creation.md b/docs/src/content/docs/ru/challenges/testing/24-harness-creation.md
new file mode 100644
index 0000000..e0c0cab
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/24-harness-creation.md
@@ -0,0 +1,46 @@
+---
+title: π Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ harness ΠΊΠ»Π°ΡΡΠ°
+description: ΠΠ°Π΄Π°ΡΠ° 24 ΠΏΠΎΡΠ²ΡΡΠ΅Π½ΠΎ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° ΡΠ΅ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΡΠ΅Π½Π΄Π°.
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 24
+command: testing-create-harness
+sidebar:
+ order: 112
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+Π¦Π΅Π»Ρ ΡΡΠΎΠΉ Π·Π°Π΄Π°ΡΠΈ - ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ harness ΠΊΠ»Π°ΡΡ Π΄Π»Ρ `slider.component.ts`. Π€Π°ΠΉΠ» ΡΡΠ΅Π½Π΄Π°, `slider.harness.ts`, ΡΠΆΠ΅ ΡΠΎΠ·Π΄Π°Π½.
+
+ΠΠ΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅ API:
+
+```ts
+ async clickPlus(): Promise ;
+
+ async clickMinus(): Promise;
+
+ async getValue(): Promise ;
+
+ async getMinValue(): Promise;
+
+ async disabled(): Promise;
+
+ async setValue(value: number): Promise;
+```
+
+ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ·Π΄Π°ΡΡ `HarnessPredicate` Ρ ΠΏΡΠ΅Π΄ΠΈΠΊΠ°ΡΠΎΠΌ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎΠΌ `minValue`.
+
+```ts
+ static with(
+ this: ComponentHarnessConstructor,
+ options: SliderHarnessFilters = {}
+ ): HarnessPredicate;
+```
+
+ΠΠ°ΠΊΠΎΠ½Π΅Ρ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½Π°Π±ΠΎΡ ΡΠ΅ΡΡΠΎΠ² Π΄Π»Ρ `app.component`. ΠΠ΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ΅ΡΡΡ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠΆΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½Ρ, Π½ΠΎ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅ΡΡΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ, ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΡΠΎΠ»ΡΠΊΠΎ ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ², ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ.
+
+> ΠΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡ Angular Material Π΄ΠΎΡΡΡΠΏΠ½Π° [Π·Π΄Π΅ΡΡ](https://material.angular.io/cdk/test-harnesses/overview).
+
+Π£Π΄Π°ΡΠΈ !!! πͺ
diff --git a/docs/src/content/docs/ru/challenges/testing/29-real-application.md b/docs/src/content/docs/ru/challenges/testing/29-real-application.md
new file mode 100644
index 0000000..e9cbef0
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/29-real-application.md
@@ -0,0 +1,35 @@
+---
+title: π΄ ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ
+description: ΠΠ°Π΄Π°ΡΠ° 29 ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π° ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ
+author: thomas-laforge
+contributors:
+ - Dinozavvvr
+challengeNumber: 29
+command: testing-todos-list
+sidebar:
+ order: 205
+---
+
+## ΠΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
+
+ΠΡΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ Π±ΠΎΠ»ΡΡΠΎΠΉ Π²ΡΠ·ΠΎΠ², ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ ΠΎΠ½ΠΎ ΡΠ΅ΡΠ½ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ ΠΆΠΈΠ·Π½ΠΈ, Ρ ΠΊΠΎΡΠΎΡΡΠΌ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΠΎΠ»ΠΊΠ½ΡΡΡΡΡ Π² ΡΠ²ΠΎΠ΅ΠΉ ΠΏΠΎΠ²ΡΠ΅Π΄Π½Π΅Π²Π½ΠΎΠΉ Π΄Π΅ΡΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Angular. Π§ΡΠΎ Π΄Π΅Π»Π°Π΅Ρ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ, ΡΠ°ΠΊ ΡΡΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ Π·Π°Π³Π»ΡΡΠΊΠΈ.
+
+ΠΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ - ΡΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ ΡΠΏΠΈΡΠΊΠ° Π·Π°Π΄Π°Ρ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΈΠ»ΡΡΡΠΎΠ²Π°ΡΡ Π·Π°ΡΠ²ΠΊΠΈ, ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ Π½ΠΎΠ²ΡΠ΅, Π½Π°Π·Π½Π°ΡΠ°ΡΡ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΡΠ²ΠΊΡ, Π·Π°ΠΊΡΡΠ²Π°ΡΡ Π΄ΡΡΠ³ΠΈΠ΅ ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄ΠΈΡΡ ΠΊ Π΄Π΅ΡΠ°Π»ΡΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π·Π°ΡΠ²ΠΊΠΈ.
+
+Π ΡΡΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ Π²Ρ Π½Π°ΠΏΠΈΡΠ΅ΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ `ListComponent`, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π³Π»ΠΎΠ±Π°Π»ΡΠ½ΡΠΉ Π²ΠΈΠ΄, ΠΈ `RowComponent`, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΡ Π·Π°ΡΠ²ΠΊΡ. ΠΡΠΎΠΌΠ΅ ΡΠΎΠ³ΠΎ, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΡΠ΅ ΡΠ΅ΡΡΡ Π΄Π»Ρ `TicketStoreService`, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Testing Library. _ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅ΡΠ²ΠΈΡΡ._
+
+ΠΡΠΎΠ±Π΅Π½Π½ΠΎ ΡΠ»ΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΎΠ±ΡΠ°Π±Π°ΡΡΠ²Π°ΡΡ Π°ΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ. ΠΠ°ΠΆΠ½ΠΎ Π½Π΅ Π²Π²ΠΎΠ΄ΠΈΡΡ ΡΠ²Π½ΡΠ΅ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ(waits) Π² Π²Π°ΡΠΈ ΡΠ΅ΡΡΡ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠΈΠ²Π΅Π΄Π΅Ρ ΠΊ Π½Π΅Π½ΡΠΆΠ½ΡΠΌ Π·Π°Π΄Π΅ΡΠΆΠΊΠ°ΠΌ. ΠΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π»ΡΡΡΠ΅ ΠΈΡΠΊΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΡΠ²ΠΈΡΡΡΡ ΠΈΠ»ΠΈ ΠΈΡΡΠ΅Π·Π½ΡΡΡ ΠΈΠ· DOM. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΡ Π±ΡΠ΄Π΅Ρ Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΎΠΆΠΈΠ΄Π°ΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΏΠ΅ΡΠΈΠΎΠ΄Π° Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΡ ΡΠΆΠ΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π² ΠΎΠ±Π΅ΠΈΡ
Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°Ρ
. ΠΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠΌΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΠΌΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠΌΠΈ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΡ
ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ
ΡΠ΅ΡΡΠΎΠ².
+
+ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΠΎΠΈΠ³ΡΠ°ΡΡ Ρ ΡΡΠΈΠΌ, Π·Π°ΠΏΡΡΡΠΈΠ²: `npx nx serve testing-todos-list`.
+
+Π§ΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΡΠ΅ΡΡΡ Testing Library, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ `npx nx test testing-todos-list`. ΠΡ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ [Jest Runner](https://marketplace.visualstudio.com/items?itemName=firsttris.vscode-jest-runner), ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ, Π½Π°ΠΆΠΈΠΌΠ°Ρ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡ `Run` Π½Π°Π΄ ΠΊΠ°ΠΆΠ΄ΡΠΌ Π±Π»ΠΎΠΊΠΎΠΌ `describe` ΠΈΠ»ΠΈ `it`.
+
+ΠΠ»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Cypress Π²Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ ΡΠ²ΠΎΠΉ ΡΠ΅ΡΡ Π²Π½ΡΡΡΠΈ `child.component.cy.ts` ΠΈ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΠ΅ `npx nx component-test testing-todos-list`, ΡΡΠΎΠ±Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ Π²Π°ΡΠΈ ΡΠ΅ΡΡΠΎΠ²ΡΠ΅ Π½Π°Π±ΠΎΡΡ. ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»Π°Π³ `--watch`, ΡΡΠΎΠ±Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠ΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π°Π±Π»ΡΠ΄Π΅Π½ΠΈΡ.
+
+# ΠΠ°Π΄Π°Π½ΠΈΠ΅
+
+Π¦Π΅Π»Ρ - ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠΈΡΠ°Π½Π½ΡΡ
Π² ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΡΠ°ΠΉΠ»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Testing ΠΈ Cypress Component Testing.
+
+:::note
+Π― ΡΠΎΠ·Π΄Π°Π» Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π±Π»ΠΎΠΊΠΎΠ² `it`, Π½ΠΎ Π½Π΅ ΡΡΠ΅ΡΠ½ΡΠΉΡΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΡΠ΅ΡΡΠΎΠ², Π΅ΡΠ»ΠΈ Ρ
ΠΎΡΠΈΡΠ΅.
+:::
diff --git a/docs/src/content/docs/ru/challenges/testing/index.mdx b/docs/src/content/docs/ru/challenges/testing/index.mdx
new file mode 100644
index 0000000..7af2693
--- /dev/null
+++ b/docs/src/content/docs/ru/challenges/testing/index.mdx
@@ -0,0 +1,73 @@
+---
+title: Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅
+prev: false
+next: false
+contributors:
+ - Dinozavvvr
+description: ΠΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π² Π·Π°Π΄Π°ΡΠΈ ΠΏΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ.
+noCommentSection: true
+sidebar:
+ order: 1
+---
+
+import { LinkCard } from '@astrojs/starlight/components';
+
+Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ - ΡΡΠΎ Π²Π°ΠΆΠ½ΡΠΉ ΡΡΠ°ΠΏ Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΡΠ΅ΠΌΡΡ
, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΡ
ΠΈ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.
+Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΡΠΏΡΡΠ΅Π½ΠΎ, Π΄Π°ΠΆΠ΅ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠΆΠ°ΡΡΡ
ΡΡΠΎΠΊΠΎΠ² ΠΈΠ»ΠΈ ΡΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ Π΄Π°Π²Π»Π΅Π½ΠΈΡ ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ ΠΏΡΠΎΠ΄ΡΠΊΡΠ°.
+Π Π½Π°ΡΠΈ Π΄Π½ΠΈ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ Π·Π°ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΡΡ
ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΠ±Π»Π΅Π³ΡΠ°ΡΡ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΊΠΎΠ΄Π° ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°ΡΡ ΠΎΡΠ»ΠΈΡΠ½ΡΠΉ ΠΎΠΏΡΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°.
+
+Π ΡΡΠΎΠΉ ΡΠ΅ΡΠΈΠΈ ΡΠΏΡΠ°ΠΆΠ½Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΌΡ ΠΈΠ·ΡΡΠΈΠΌ ΠΈ ΠΎΡΠ²ΠΎΠΈΠΌ [Testing Library](https://testing-library.com/docs/) ΠΈ [Cypress Component Testing](https://docs.cypress.io/guides/component-testing/angular/overview), ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΏΡΠΎΡΠ°ΡΡ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΡΡΠΈΠΈ Ρ DOM Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠ³ΠΎ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ° Angular.
+
+ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Testing Library ΠΈΠ»ΠΈ Cypress Component Testing Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π²Ρ ΡΠ΅ΡΡΠΈΡΡΠ΅ΡΠ΅ ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ½ΡΠΉ ΡΡΠΈΠΊ. ΠΡ Π±ΡΠ΄Π΅ΡΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄Π΅Π»Π°ΡΡ Π½Π° ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΠΏΠΎΠ»Π½ΠΎΡΠ΅Π½Π½ΡΡ
ΡΠ΅ΡΡΠΎΠ² Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΡΠΎΠΌ, ΡΡΠΎ Π±ΡΠΊΡΠ½Π΄ Π·Π°ΠΌΠΎΠΊΠ°Π½, ΡΡΠΎ Π΄Π΅Π»Π°Π΅Ρ ΡΠ΅ΡΡΡ Π±ΡΡΡΡΠ΅Π΅ ΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌΠΈ.
+Π¦Π΅Π»Ρ ΡΠΎΡΡΠΎΠΈΡ Π² ΡΠΎΠΌ, ΡΡΠΎΠ±Ρ ΠΌΠΎΠΊΠ°ΡΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΌΠ΅Π½ΡΡΠ΅, ΡΡΠΎΠ±Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π°Ρ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π½Π° Π±ΠΎΠ»Π΅Π΅ Π²ΡΡΠΎΠΊΠΎΠΌ ΡΡΠΎΠ²Π½Π΅, ΡΠ΅ΠΌ ΠΏΡΠΈ ΠΌΠΎΠ΄ΡΠ»ΡΠ½ΠΎΠΌ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΡΠΎ ΠΎΠ±Π»Π΅Π³ΡΠΈΡ ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³.
+Π ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΎΠ½Π½ΡΠ΅ ΡΠ΅ΡΡΡ - ΡΡΠΎ ΡΠ΅ΡΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ Π±ΡΠ΄Π΅ΡΠ΅ ΠΏΠΈΡΠ°ΡΡ Π±ΠΎΠ»ΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ. ΠΠ·ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΈΡ
ΠΏΠΈΡΠ°ΡΡ, ΡΠ΄Π΅Π»Π°Π΅Ρ Π²Π°ΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΠΌΡΠΌ.
+
+ΠΠ΅ΡΠ΅Π΄ Π²Π°ΠΌΠΈ ΡΠ΅ΡΠΈΡ ΠΈΠ· 8 Π·Π°Π΄Π°Ρ, ΠΊΠΎΡΠΎΡΡΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅ΡΠΈΡΡ Π² Π»ΡΠ±ΠΎΠΌ ΠΏΠΎΡΡΠ΄ΠΊΠ΅.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+