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