Test Driven Development with Node js
More
while building this application, we will learn
how we can build a restful web service with express js, with all necessary functionalities like validation, internationalization, static resource serving, caching, json manipulation, interacting with external services
how we can handle database operations with orm package, sequelize.
how we can manage database version history and migrations
and we will see
how test driven development works.
how it's affecting our code quality, reusability
how it's giving us the confidence about refactoring our implementation
how we can deploy the application to heroku
how we can create an instance in google cloud and deploy our application to it
and how we can automate the deployment with github actions.
This course is purely built on practice. Each code piece we write, will be for our actual application implementation.
In each section we will gradually build our application. We will not jump ahead and add functionality not needed for that moment. We will implement one requirement at a time. Each implementation will bring the next requirement to us.
And following this practice, will help you to get a solid foundation about overall rest web services requirements and how to implement one of them with node js by following test driven development methodology.
Watch Online Test Driven Development with Node js
# | Title | Duration |
---|---|---|
1 | Introduction | 12:41 |
2 | Tools | 02:15 |
3 | Methodology | 01:10 |
4 | Creating Project | 09:02 |
5 | Development Environment Dependencies | 15:04 |
6 | Web Client | 05:43 |
7 | First Test: Sign Up Request | 16:47 |
8 | Saving User to Database | 23:48 |
9 | Password Hashing | 09:25 |
10 | Refactor | 12:17 |
11 | Configuration and Environment | 10:42 |
12 | Validation | 14:01 |
13 | Validatior Middleware | 15:49 |
14 | Express Validator | 07:22 |
15 | Dynamic Tests | 11:44 |
16 | Remaining Validations | 14:21 |
17 | Custom Validation: Unique Email Validation | 16:19 |
18 | Internationalization - i18n | 22:27 |
19 | Account Activation Intro | 10:10 |
20 | Activation Email | 13:17 |
21 | Email Transport Failures | 15:03 |
22 | Refactoring Tests | 16:46 |
23 | Activating Account | 21:00 |
24 | Testing on Web Client | 08:05 |
25 | Error Handler | 11:32 |
26 | Error Body | 11:43 |
27 | User Page Response | 08:23 |
28 | Page Content | 11:31 |
29 | Total Page Info | 04:12 |
30 | Changing Page | 11:06 |
31 | Changing Page Size | 12:42 |
32 | Get User | 18:15 |
33 | Authentication | 12:48 |
34 | Authentication Failure | 22:08 |
35 | Refactoring Tests | 07:29 |
36 | Update User - Authentication Failure | 27:56 |
37 | Update User Success | 20:11 |
38 | Authorization Aware User List | 08:32 |
39 | JWT Token Generation | 08:57 |
40 | Authorization | 16:18 |
41 | JWT Practices | 08:18 |
42 | Opaque Token | 09:56 |
43 | Logout | 08:10 |
44 | Delete User | 14:43 |
45 | Token User Relationship | 12:16 |
46 | Expiring Token | 19:20 |
47 | Token Cleanup | 14:37 |
48 | Password Reset Request | 16:57 |
49 | Password Reset Success Response | 13:51 |
50 | Sending Password Reset Email | 16:40 |
51 | Refactoring Rest Endpoint | 01:34 |
52 | Updating Password - Error Cases | 20:22 |
53 | Updating Password - Success | 14:56 |
54 | Testing on Client | 02:27 |
55 | User Profile Image | 05:19 |
56 | Image in Responses | 06:54 |
57 | Upload Folder | 11:21 |
58 | Storing Images in Folder | 18:39 |
59 | Serving Static Resources | 14:58 |
60 | Cleaning up the Folders | 04:25 |
61 | Replacing Old Image | 04:02 |
62 | Username Validation | 06:08 |
63 | File Size Validation | 17:05 |
64 | File Type Validation | 24:26 |
65 | Testing on Client | 02:00 |
66 | Migration Demo | 30:41 |
67 | Creating Latest Migration Scripts | 05:26 |
68 | Running Tests Against Shared Database | 14:06 |
69 | Refactoring Configuration | 06:58 |
70 | Using PostgreSQL | 04:40 |
71 | Organizing NPM Scripts | 09:27 |
72 | Logger | 14:03 |
73 | Logging App Version | 01:53 |
74 | Production Configuration | 04:15 |
75 | Deploying to Heroku | 10:22 |
76 | Preparing VM on Google Cloud | 12:46 |
77 | Deploying App to VM | 14:07 |
78 | Automating Deployment | 21:12 |
79 | Submitting Hoax | 19:37 |
80 | Saving Hoax to Database | 13:39 |
81 | Validation | 13:08 |
82 | Hoax Migration Scripts | 05:46 |
83 | Hoax User Relationship | 13:12 |
84 | Listing Hoaxes | 24:22 |
85 | Listing Hoaxes of a User | 24:34 |
86 | Running Tests with PostgreSQL | 04:43 |
87 | Deployment | 06:04 |
88 | Attachment Folder | 03:36 |
89 | Storing Attachment info in DB | 16:54 |
90 | Storing Attached File | 10:46 |
91 | Serving Attachment Folder | 03:24 |
92 | Storing File Type | 17:37 |
93 | File Size Limit | 14:35 |
94 | Attachment Hoax Relationship | 17:05 |
95 | Attachment in Hoax Listing | 19:47 |
96 | Migration Scripts | 27:14 |
97 | Scheduled Service for Unused Attachments | 25:34 |
98 | Hoax Delete - Error Cases | 11:37 |
99 | Hoax Delete - Success Cases | 09:39 |
100 | Hoax Delete - Cascade | 14:05 |
101 | Migrating Constraint | 16:56 |
102 | User Delete | 17:42 |
103 | Updating Dependencies | 07:47 |
104 | Deployment | 07:19 |