1. Урок 1. 00:03:23
    Welcome and Introduction
  2. Урок 2. 00:03:45
    TDD: What and Why
  3. Урок 3. 00:03:06
    create-react-app
  4. Урок 4. 00:07:47
    OPTIONAL: Setting up Jest without create-react-app
  5. Урок 5. 00:04:02
    Demo of Jest Watch Mode
  6. Урок 6. 00:05:41
    More about Jest Watch Mode, Test Files and Tests
  7. Урок 7. 00:06:53
    Enzyme vs. React Testing Library
  8. Урок 8. 00:04:27
    Enzyme Introduction and Setup
  9. Урок 9. 00:03:35
    Using Enzyme in a Test
  10. Урок 10. 00:04:01
    Jest Assertions
  11. Урок 11. 00:03:01
    Types of Tests
  12. Урок 12. 00:06:59
    Testing Tradeoffs
  13. Урок 13. 00:03:11
    Why There is no Snapshot Testing in this Course
  14. Урок 14. 00:02:53
    Demo and Start Click Counter App
  15. Урок 15. 00:05:56
    Set up Enzyme and Write Tests
  16. Урок 16. 00:06:02
    data-test Attributes
  17. Урок 17. 00:04:03
    First data-test Attribute Test
  18. Урок 18. 00:08:45
    OPTIONAL: Removing data-test Attributes for Production
  19. Урок 19. 00:04:10
    More data-test Attribute Tests
  20. Урок 20. 00:06:51
    DRY Refactor
  21. Урок 21. 00:05:12
    Strategies and Design Decisions
  22. Урок 22. 00:06:41
    Test Initial Counter Display
  23. Урок 23. 00:05:41
    Test Button Click
  24. Урок 24. 00:03:06
    Acceptance Testing and Review
  25. Урок 25. 00:02:20
    Click Counter Challenges
  26. Урок 26. 00:01:50
    Jotto App Demo
  27. Урок 27. 00:04:18
    Jotto App Planning
  28. Урок 28. 00:03:37
    Jotto App Plan of Attack
  29. Урок 29. 00:07:24
    Set up Jotto App and Congrats Component
  30. Урок 30. 00:07:26
    Congrats Component Test Setup
  31. Урок 31. 00:05:44
    Congrats Tests and the .text() Method
  32. Урок 32. 00:03:18
    Code the Congrats Component
  33. Урок 33. 00:10:39
    OPTIONAL PropTypes Testing
  34. Урок 34. 00:03:42
    OPTIONAL Code PropTypes and Update Tests
  35. Урок 35. 00:02:30
    OPTIONAL Default Props in setup()
  36. Урок 36. 00:02:15
    Move Enzyme Configuration to setupTests.js
  37. Урок 37. 00:02:09
    Summary of Abstractions
  38. Урок 38. 00:02:19
    Playing the Long Game
  39. Урок 39. 00:04:07
    Set up GuessedWords Component and Tests
  40. Урок 40. 00:07:39
    GuessedWords PropTypes and setup()
  41. Урок 41. 00:01:52
    Use `describe` for Context
  42. Урок 42. 00:04:57
    Write Tests and beforeEach for "no words guessed"
  43. Урок 43. 00:03:13
    Code for "no words guessed"
  44. Урок 44. 00:06:23
    Tests for "nonzero guessed words"
  45. Урок 45. 00:05:16
    Code for "nonzero guessed words"
  46. Урок 46. 00:03:07
    Manual Acceptance Testing
  47. Урок 47. 00:04:11
    Bootstrap Styling
  48. Урок 48. 00:02:31
    Code Quiz! Basic Input Component
  49. Урок 49. 00:04:45
    Input Component Props
  50. Урок 50. 00:04:29
    OPTIONAL: Introduction to React Hooks
  51. Урок 51. 00:04:03
    Mocking React Methods
  52. Урок 52. 00:05:12
    Prepare Input Component for useState Tests
  53. Урок 53. 00:07:29
    State-Controlled Field Tests and Code
  54. Урок 54. 00:06:22
    Common Questions about Mocking React Methods
  55. Урок 55. 00:08:25
    Clearing State-Controlled Field on Submit
  56. Урок 56. 00:08:30
    Testing Input Render for `success` as `true` or `false`
  57. Урок 57. 00:08:37
    `getLetterMatchCount` Helper Function
  58. Урок 58. 00:04:50
    Introduction to Functional Tests, and update App Component
  59. Урок 59. 00:08:44
    Set up Functional Tests
  60. Урок 60. 00:07:24
    First Functional Test: Submit Guess with No Previous Guesses
  61. Урок 61. 00:06:29
    Code Quiz! Functional Tests for "Some Words Guessed" and "Correct Guess"
  62. Урок 62. 00:05:15
    Jest methods: .only() .skip() and .todo()
  63. Урок 63. 00:01:51
    `secretWord` Plan
  64. Урок 64. 00:03:33
    `moxios`: Why and How
  65. Урок 65. 00:04:11
    Set up `getSecretWord` Action and Tests
  66. Урок 66. 00:02:38
    Testing Async Actions
  67. Урок 67. 00:05:01
    Write `getSecretWord` Action
  68. Урок 68. 00:02:04
    Asynchronous Action and Moxios Summary
  69. Урок 69. 00:05:59
    Mocking Modules with Jest
  70. Урок 70. 00:04:44
    Using useEffect to Get Secret Word on App Mount
  71. Урок 71. 00:05:31
    Mocking the actions Module
  72. Урок 72. 00:05:53
    Testing that useEffect is Called on App Mount, Not Called on App Update
  73. Урок 73. 00:02:02
    Write useEffect Code to Pass Tests
  74. Урок 74. 00:04:44
    Choice point: Redux or React Context?
  75. Урок 75. 00:04:57
    Redux Planning
  76. Урок 76. 00:05:37
    Set up Redux
  77. Урок 77. 00:01:01
    Success State Planning
  78. Урок 78. 00:07:06
    `CORRECT_GUESS` Action Creator
  79. Урок 79. 00:06:53
    `successReducer` Test
  80. Урок 80. 00:02:32
    OPTIONAL: Introduction to the `useSelector` Hook
  81. Урок 81. 00:03:49
    Testing Redux State for Input Component
  82. Урок 82. 00:05:46
    Choices for Testing `useSelector`
  83. Урок 83. 00:03:55
    `storeFactory` Test Helper
  84. Урок 84. 00:04:06
    Updating Setup Function to use Store Factory
  85. Урок 85. 00:03:29
    Summary: Intro to Redux Testing
  86. Урок 86. 00:01:01
    Other Pieces of State
  87. Урок 87. 00:03:15
    `guessedWords` Planning
  88. Урок 88. 00:01:26
    Redux Thunk: What and Why
  89. Урок 89. 00:03:36
    Installing Redux Thunk
  90. Урок 90. 00:02:34
    Thunk Test Planning
  91. Урок 91. 00:08:50
    Set up `guessWords` Tests
  92. Урок 92. 00:05:48
    First Thunk Test
  93. Урок 93. 00:02:09
    Add `secretWordReducer`
  94. Урок 94. 00:07:14
    Remaining Tests
  95. Урок 95. 00:06:53
    Write Reducer and Action Creator
  96. Урок 96. 00:05:11
    Plan for Functional Tests
  97. Урок 97. 00:04:02
    Update Components
  98. Урок 98. 00:01:38
    Thunk Testing Summary
  99. Урок 99. 00:01:53
    `secretWord` Plan
  100. Урок 100. 00:02:46
    Update moxios Tests for Redux
  101. Урок 101. 00:04:05
    Write Action Creator and Reducer
  102. Урок 102. 00:04:49
    Update App to use secretWord state: mock response and Jest settings
  103. Урок 103. 00:02:06
    Manual Acceptance Testing
  104. Урок 104. 00:05:45
    Jotto Challenges for Redux
  105. Урок 105. 00:02:16
    Introduction to React Context
  106. Урок 106. 00:05:05
    Jotto Data Flow with Context
  107. Урок 107. 00:02:14
    Jotto Context Plan of Attack
  108. Урок 108. 00:05:24
    Update `getSecretWord` Tests for Context Implementation
  109. Урок 109. 00:01:14
    Update `getSecretWord` Code for Context Implementation
  110. Урок 110. 00:06:09
    Intro to `useReducer` Hook
  111. Урок 111. 00:08:40
    Refactor App State with `useReducer` Hook
  112. Урок 112. 00:06:16
    Loading Spinner Planning and `describe.each()`
  113. Урок 113. 00:12:04
    Test and Code Loading Spinner
  114. Урок 114. 00:03:31
    Context Implementations in this Course
  115. Урок 115. 00:04:32
    Language Context Planning
  116. Урок 116. 00:05:39
    Strings File Setup
  117. Урок 117. 00:04:36
    Strings Tests
  118. Урок 118. 00:02:10
    Code getStringByLanguage
  119. Урок 119. 00:07:14
    Strings Warnings
  120. Урок 120. 00:04:48
    LanguagePicker Component: Planning and Setup
  121. Урок 121. 00:04:44
    LanguagePicker Tests: Render and PropTypes
  122. Урок 122. 00:04:29
    LanguagePicker Icons
  123. Урок 123. 00:02:08
    LanguagePicker Icon Click
  124. Урок 124. 00:06:26
    languageContext File
  125. Урок 125. 00:06:24
    Context Test Options
  126. Урок 126. 00:06:16
    Congrats Language Context Test Setup
  127. Урок 127. 00:03:36
    Congrats Language Context Tests
  128. Урок 128. 00:02:32
    Congrats Language Context Code
  129. Урок 129. 00:07:39
    Code Quiz! Input Language Context
  130. Урок 130. 00:02:41
    Fix App Test Language Warnings
  131. Урок 131. 00:08:29
    GuessedWords Language Context Tests: Mocking useContext
  132. Урок 132. 00:03:10
    GuessedWords Language Context Code
  133. Урок 133. 00:01:17
    Manual Acceptance Testing
  134. Урок 134. 00:03:21
    Context with Embedded State
  135. Урок 135. 00:06:08
    Code Success Context
  136. Урок 136. 00:08:22
    Test Success Context
  137. Урок 137. 00:03:30
    Code Quiz! guessedWords Context
  138. Урок 138. 00:03:57
    Set up Congrats and App Components for Success Context Testing
  139. Урок 139. 00:06:21
    Test and Code Congrats Success Context
  140. Урок 140. 00:03:55
    Set up GuessedWords Component for Context Testing
  141. Урок 141. 00:09:32
    Test and Code GuessedWords Context in GuessedWords Component
  142. Урок 142. 00:04:13
    Review of Context with Embedded State
  143. Урок 143. 00:06:39
    Update Functional Test Setup for Context Implementation
  144. Урок 144. 00:05:24
    Test and Code Input Consuming Success Context
  145. Урок 145. 00:02:28
    Test and Code Input Setting Success Context
  146. Урок 146. 00:04:55
    Test and Code Input Setting GuessedWords Context
  147. Урок 147. 00:01:48
    Fix GuessedWords Provider Error in Input.test.js
  148. Урок 148. 00:02:14
    Manual Acceptance Testing
  149. Урок 149. 00:04:57
    Review of Jotto Redux State Plan
  150. Урок 150. 00:05:47
    Set up Redux
  151. Урок 151. 00:01:01
    Success State Planning
  152. Урок 152. 00:07:34
    `CORRECT_GUESS` action creator
  153. Урок 153. 00:07:19
    `successReducer` Tests
  154. Урок 154. 00:03:14
    `successReducer` Code
  155. Урок 155. 00:01:52
    Tradeoffs to Unit Testing Action Creators / Reducers
  156. Урок 156. 00:04:33
    Set Up Connected Component Tests
  157. Урок 157. 00:02:28
    Input Component Test Organization
  158. Урок 158. 00:03:07
    Start setup Function for Input Component
  159. Урок 159. 00:02:47
    `storeFactory` Test Helper
  160. Урок 160. 00:04:07
    Enzyme `.dive()` method
  161. Урок 161. 00:04:22
    Summary of Connected Component Setup and Choices
  162. Урок 162. 00:07:10
    Input Tests and Code for success=false
  163. Урок 163. 00:02:45
    Quiz! Write Input Tests and Code for success=true
  164. Урок 164. 00:01:04
    Simple Redux Summary
  165. Урок 165. 00:01:23
    Other Pieces of State
  166. Урок 166. 00:03:15
    `guessedWords` Planning
  167. Урок 167. 00:01:26
    Redux Thunk: What and Why
  168. Урок 168. 00:04:31
    Installing Redux Thunk
  169. Урок 169. 00:02:34
    Thunk Test Planning
  170. Урок 170. 00:09:06
    Set up `guessWords` Tests
  171. Урок 171. 00:05:55
    First Thunk Test
  172. Урок 172. 00:02:06
    Add `secretWordReducer`
  173. Урок 173. 00:07:54
    Remaining Tests
  174. Урок 174. 00:07:15
    Write Reducer and Action Creator
  175. Урок 175. 00:00:38
    Thunk Integration Testing Summary
  176. Урок 176. 00:02:22
    `secretWord` Plan
  177. Урок 177. 00:03:33
    `moxios`: Why and How
  178. Урок 178. 00:05:27
    Set up `secretWord` Action Creator and Tests
  179. Урок 179. 00:03:32
    Testing Asynchronous Action Creators
  180. Урок 180. 00:05:10
    Write `getSecretWord` tests
  181. Урок 181. 00:04:52
    Write `secretWord` Action Creator and Reducer
  182. Урок 182. 00:02:46
    Summary: Asynchronous Action Creators and `moxios`
  183. Урок 183. 00:01:27
    Testing Props and Action Creator Calls
  184. Урок 184. 00:02:00
    Testing Redux Props
  185. Урок 185. 00:07:39
    Input Redux Props
  186. Урок 186. 00:06:41
    Quiz! App Redux Props
  187. Урок 187. 00:01:53
    OPTIONAL: Configure Jest Setup for non-create-react-app
  188. Урок 188. 00:02:51
    Approach to Testing Action Creator Calls
  189. Урок 189. 00:10:42
    `getSecretWord` call on App Mount
  190. Урок 190. 00:05:53
    Quiz! Tests for `guessWord` on Input Submit Click
  191. Урок 191. 00:09:36
    Write test for `guessWord` Argument
  192. Урок 192. 00:06:27
    Write `guessWord` Call with Argument
  193. Урок 193. 00:02:38
    Clear Input Box on Submit
  194. Урок 194. 00:02:09
    Demo of Completed App
  195. Урок 195. 00:05:53
    Jotto Challenges