1. Урок 1. 00:01:47
    Introduction
  2. Урок 2. 00:02:06
    Project Generation
  3. Урок 3. 00:03:52
    Our First Test
  4. Урок 4. 00:03:44
    Introduction to Jest
  5. Урок 5. 00:02:02
    App Overview
  6. Урок 6. 00:00:45
    Installing Dependencies
  7. Урок 7. 00:02:45
    React and Redux Design
  8. Урок 8. 00:04:25
    What Do We Test?
  9. Урок 9. 00:02:49
    Starting from Scratch
  10. Урок 10. 00:04:08
    Rendering the App
  11. Урок 11. 00:03:17
    Showing Components in the App
  12. Урок 12. 00:03:32
    Valid Test File Names
  13. Урок 13. 00:03:57
    Test Structure
  14. Урок 14. 00:07:53
    Tricking React with JSDOM
  15. Урок 15. 00:04:12
    Verifying Component Existence
  16. Урок 16. 00:04:12
    Test Expectations
  17. Урок 17. 00:06:14
    Limiting Test Knowledge
  18. Урок 18. 00:07:26
    Enzyme Setup
  19. Урок 19. 00:06:20
    Enzyme Renderers
  20. Урок 20. 00:07:07
    Expectations for Component Instances
  21. Урок 21. 00:01:19
    Exercise Time!
  22. Урок 22. 00:01:57
    Expecting the Comment List
  23. Урок 23. 00:05:01
    Absolute Path Imports
  24. Урок 24. 00:04:26
    Code Reuse with BeforeEach
  25. Урок 25. 00:03:17
    Comment Box Component
  26. Урок 26. 00:05:09
    TextArea Implementation
  27. Урок 27. 00:03:23
    CommentBox Test File
  28. Урок 28. 00:06:49
    Asserting Element Existence
  29. Урок 29. 00:04:03
    AfterEach Statements
  30. Урок 30. 00:05:16
    Simulating Change Events
  31. Урок 31. 00:06:36
    Providing Fake Events
  32. Урок 32. 00:03:56
    Forcing Component Updates
  33. Урок 33. 00:04:20
    Retrieving Prop Values
  34. Урок 34. 00:02:09
    Form Submit Exercise
  35. Урок 35. 00:06:41
    Exercise Solution
  36. Урок 36. 00:06:19
    Describe Statements
  37. Урок 37. 00:04:31
    Redux Setup
  38. Урок 38. 00:05:01
    The Provider Tag
  39. Урок 39. 00:04:12
    The SaveComment Action Creator
  40. Урок 40. 00:03:58
    Bonding React with Redux
  41. Урок 41. 00:06:57
    Redux Test Errors
  42. Урок 42. 00:07:37
    Adding a Root Component
  43. Урок 43. 00:05:22
    Testing Reducers
  44. Урок 44. 00:02:47
    Handling Unknown Types
  45. Урок 45. 00:05:32
    Testing Action Creators
  46. Урок 46. 00:04:35
    Comment List Wireup
  47. Урок 47. 00:04:56
    Getting Data Into Redux
  48. Урок 48. 00:07:52
    Redux Initial State
  49. Урок 49. 00:08:30
    Cheerio Queries
  50. Урок 50. 00:03:52
    One More Feature
  51. Урок 51. 00:04:38
    Fetching a Remote Resource
  52. Урок 52. 00:05:09
    Parsing Comment List
  53. Урок 53. 00:03:32
    Integration Tests
  54. Урок 54. 00:03:04
    Integration Tests in Action
  55. Урок 55. 00:02:31
    Fixing a Broken Test
  56. Урок 56. 00:03:05
    Simulating Button Clicks
  57. Урок 57. 00:04:33
    Why the Failure?
  58. Урок 58. 00:05:59
    Faking Requests with Moxios
  59. Урок 59. 00:02:48
    The Reason for Failure
  60. Урок 60. 00:06:56
    Introducing a Pause
  61. Урок 61. 00:02:44
    Moxios's Wait Function
  62. Урок 62. 00:02:02
    App Wrapup
  63. Урок 63. 00:01:43
    An Introduction to Higher Order Components
  64. Урок 64. 00:01:59
    Connect - A Higher Order Component
  65. Урок 65. 00:04:31
    App Overview
  66. Урок 66. 00:01:46
    Adding React Router
  67. Урок 67. 00:03:35
    Adding Routes
  68. Урок 68. 00:05:05
    Auth Reducer
  69. Урок 69. 00:04:06
    Rendering a Header
  70. Урок 70. 00:04:19
    Wiring Up State
  71. Урок 71. 00:03:48
    Changing Auth State
  72. Урок 72. 00:06:30
    Steps for Building a HOC
  73. Урок 73. 00:04:28
    Forced Navigation with React Router
  74. Урок 74. 00:10:07
    Creating the HOC
  75. Урок 75. 00:03:27
    Placing Reusable Logic
  76. Урок 76. 00:09:11
    Passing Through Props
  77. Урок 77. 00:02:31
    Introduction to Middlewares
  78. Урок 78. 00:09:05
    The Purpose of Redux Promise
  79. Урок 79. 00:08:34
    How Async Middlewares Work
  80. Урок 80. 00:08:43
    Crazy Middleware Syntax
  81. Урок 81. 00:04:07
    Forwarding Actions
  82. Урок 82. 00:05:58
    Waiting for Promise Resolution
  83. Урок 83. 00:07:03
    Observing the Middleware
  84. Урок 84. 00:04:35
    State Validation Middleware
  85. Урок 85. 00:05:14
    JSON Schema
  86. Урок 86. 00:04:14
    Generating JSON Schema
  87. Урок 87. 00:06:08
    Middleware Creation
  88. Урок 88. 00:05:53
    Emitting Warnings
  89. Урок 89. 00:04:32
    Introduction to Authentication
  90. Урок 90. 00:04:58
    Cookies vs Tokens
  91. Урок 91. 00:04:50
    Scalable Architecture
  92. Урок 92. 00:03:46
    Server Setup
  93. Урок 93. 00:05:42
    More Server Setup
  94. Урок 94. 00:06:30
    Express Middleware
  95. Урок 95. 00:06:10
    Express Route Handler
  96. Урок 96. 00:10:22
    Mongoose Models
  97. Урок 97. 00:06:30
    MongoDB Setup
  98. Урок 98. 00:06:20
    Inspecting the Database
  99. Урок 99. 00:04:57
    Authentication Controller
  100. Урок 100. 00:07:57
    Searching for Users
  101. Урок 101. 00:06:32
    Creating User Records
  102. Урок 102. 00:08:13
    Encrypting Passwords with Bcrypt
  103. Урок 103. 00:06:17
    Salting a Password
  104. Урок 104. 00:04:59
    JWT Overview
  105. Урок 105. 00:07:14
    Creating a JWT
  106. Урок 106. 00:05:51
    Installing Passport
  107. Урок 107. 00:08:56
    Passport Strategies
  108. Урок 108. 00:04:03
    Using Strategies with Passport
  109. Урок 109. 00:05:56
    Making an Authenticated Request
  110. Урок 110. 00:05:38
    Signing in with Local Strategy
  111. Урок 111. 00:04:18
    Purpose of Local Strategy
  112. Урок 112. 00:05:09
    Bcrypt Full Circle
  113. Урок 113. 00:04:13
    Protecting Signin Route
  114. Урок 114. 00:04:05
    Signing Users In
  115. Урок 115. 00:02:40
    Server Review
  116. Урок 116. 00:03:26
    Client Overview
  117. Урок 117. 00:01:50
    Lib Installs
  118. Урок 118. 00:03:52
    The App Component
  119. Урок 119. 00:06:03
    Creating the Header
  120. Урок 120. 00:05:24
    Wiring Up React Router
  121. Урок 121. 00:04:38
    Scaffolding the Signup Form
  122. Урок 122. 00:07:46
    Including Redux
  123. Урок 123. 00:06:28
    ReduxForm for Signup
  124. Урок 124. 00:05:06
    Handling Form Submission
  125. Урок 125. 00:02:17
    Wiring Up Middleware
  126. Урок 126. 00:09:21
    Basics of Redux Thunk
  127. Урок 127. 00:05:02
    Calling the API
  128. Урок 128. 00:05:51
    Code Cleanup with Compose
  129. Урок 129. 00:11:22
    CORS in a Nutshell
  130. Урок 130. 00:05:27
    Solution to CORS Errors
  131. Урок 131. 00:04:05
    Dispatching Actions
  132. Урок 132. 00:05:17
    Displaying Auth Errors
  133. Урок 133. 00:02:38
    Redirect on Signup
  134. Урок 134. 00:02:29
    Feature Component
  135. Урок 135. 00:04:03
    The Require Auth HOC
  136. Урок 136. 00:04:55
    Persisting Login State
  137. Урок 137. 00:04:21
    Signing Out a User
  138. Урок 138. 00:02:27
    Automatic Sign Out
  139. Урок 139. 00:02:15
    The Signin Component
  140. Урок 140. 00:02:36
    The Signin Action Creator
  141. Урок 141. 00:03:21
    Updating the Header
  142. Урок 142. 00:03:10
    Header Styling
  143. Урок 143. 00:02:56
    Auth Wrapup
  144. Урок 144. 00:03:30
    Project Setup
  145. Урок 145. 00:12:42
    A First Spec
  146. Урок 146. 00:09:40
    Core Testing - Describe, It, Expect
  147. Урок 147. 00:04:06
    Test Reporting
  148. Урок 148. 00:06:10
    Feature Mockups
  149. Урок 149. 00:06:56
    Test Structure Setup
  150. Урок 150. 00:08:20
    Comment Box Tests
  151. Урок 151. 00:07:51
    Testing Class Names
  152. Урок 152. 00:06:23
    Using beforeEach to Condense Tests
  153. Урок 153. 00:05:14
    Expecting Child Elements
  154. Урок 154. 00:07:25
    Simulating Events
  155. Урок 155. 00:07:24
    Testing Controlled Components
  156. Урок 156. 00:07:14
    Form Submit Event
  157. Урок 157. 00:06:01
    Stub Comment List
  158. Урок 158. 00:07:44
    Expectations on Content
  159. Урок 159. 00:05:43
    Assertions with Lists
  160. Урок 160. 00:09:35
    Testing Action Creators
  161. Урок 161. 00:04:47
    Action Creator Shortcuts
  162. Урок 162. 00:12:38
    TDD Comments Reducer
  163. Урок 163. 00:03:37
    Spec Failures After Code Change
  164. Урок 164. 00:03:08
    App Review
  165. Урок 165. 00:05:20
    Purpose of Chai and Mocha
  166. Урок 166. 00:02:43
    Test Helper From Scratch
  167. Урок 167. 00:07:15
    JSDom Setup
  168. Урок 168. 00:05:29
    More JSDom Setup
  169. Урок 169. 00:07:54
    TestUtils Library
  170. Урок 170. 00:07:52
    Defining RenderComponent
  171. Урок 171. 00:05:13
    Finishing RenderComponent Helper
  172. Урок 172. 00:07:10
    Simulate Helper
  173. Урок 173. 00:03:09
    Test Helper Review
  174. Урок 174. 00:03:06
    What is a Higher Order Component?
  175. Урок 175. 00:05:50
    Connect and Provider
  176. Урок 176. 00:04:20
    Authentication HOC Overview
  177. Урок 177. 00:06:55
    Header Setup
  178. Урок 178. 00:07:37
    React Router Setup
  179. Урок 179. 00:07:06
    Authentication Reducer
  180. Урок 180. 00:08:05
    Action Creator Hookup
  181. Урок 181. 00:04:57
    Authentication Higher Order Component
  182. Урок 182. 00:09:10
    HOC Scaffold Code
  183. Урок 183. 00:04:49
    Nesting Higher Order Components
  184. Урок 184. 00:05:31
    Accessing React Router on Context
  185. Урок 185. 00:02:12
    Class Level Properties
  186. Урок 186. 00:05:03
    Handling HOC Edge Cases
  187. Урок 187. 00:03:06
    Higher Order Components Review
  188. Урок 188. 00:03:26
    Middleware Overview
  189. Урок 189. 00:03:51
    App Building Plan
  190. Урок 190. 00:04:15
    Users Reducer
  191. Урок 191. 00:02:16
    Static Users Action Creator
  192. Урок 192. 00:07:33
    Rendering a List of Users
  193. Урок 193. 00:04:21
    CSS Cleanup
  194. Урок 194. 00:07:16
    Pains Without Middleware
  195. Урок 195. 00:04:44
    Middleware Stack
  196. Урок 196. 00:07:56
    Middleware Internals
  197. Урок 197. 00:05:17
    Handling Unrelated Actions
  198. Урок 198. 00:08:06
    Handling Promises
  199. Урок 199. 00:06:50
    Middleware Review
  200. Урок 200. 00:02:29
    Client Setup
  201. Урок 201. 00:05:49
    App Architecture
  202. Урок 202. 00:07:31
    Component and State Design
  203. Урок 203. 00:04:18
    Header Component
  204. Урок 204. 00:11:04
    Scaffolding the Signin Form
  205. Урок 205. 00:05:59
    Adding Signin Form
  206. Урок 206. 00:08:25
    Action Creator with Many Responsibilities
  207. Урок 207. 00:07:11
    Introducing Redux Thunk
  208. Урок 208. 00:10:39
    Signin Action Creator
  209. Урок 209. 00:09:14
    CORS In a Nutshell
  210. Урок 210. 00:06:17
    Serverside Solution for CORS
  211. Урок 211. 00:07:12
    Programmatic Navigation
  212. Урок 212. 00:06:30
    Updating Auth State
  213. Урок 213. 00:05:40
    Breather and Review
  214. Урок 214. 00:06:40
    LocalStorage and JWT
  215. Урок 215. 00:04:37
    Auth Error Messaging
  216. Урок 216. 00:04:41
    Displaying Errors
  217. Урок 217. 00:10:30
    Header Logic
  218. Урок 218. 00:05:33
    Signout Component
  219. Урок 219. 00:04:46
    Signout Action Creator
  220. Урок 220. 00:04:13
    Signup Component
  221. Урок 221. 00:08:03
    Signup Form Scaffolding
  222. Урок 222. 00:04:31
    Redux Form Validation
  223. Урок 223. 00:09:29
    Implementing Validation Logic
  224. Урок 224. 00:05:41
    More On Validation
  225. Урок 225. 00:07:12
    Signup Action Creator
  226. Урок 226. 00:08:56
    Finish Up Signup
  227. Урок 227. 00:10:22
    Securing Individual Routes
  228. Урок 228. 00:02:35
    Root IndexRoute
  229. Урок 229. 00:07:12
    Automatically Authenticating Users
  230. Урок 230. 00:08:02
    Making Authenticated API Requests
  231. Урок 231. 00:05:14
    Handling Data from Authenticated Requests
  232. Урок 232. 00:03:30
    Authentication Wrapup