Building APIs doing TDD in Node and Typescript (and Jest)

A practical example on how to build REST API doing TDD using Nodejs Typescript and jest (and mongodb)

In this course we are going to implement from scratch a REST API in Node using Typescript and testing with Jest, but using Test Driven Development (TDD). During this exercise, we will follow the Inside-out TDD approach also known as classicist or referred also sometimes as Chicago school TDD. We will start from deep inside our application and build our way out until we have meet all the business requirements, being at any time covered by our own tests.

What you’ll learn

  • Build REST API in Node and TypeScript.
  • Test with Jest framework.
  • Inside-out approach a.k.a. classicist a.k.a. Chicago school TDD.
  • Test doubles, mocks, spies, stubs, fakes and dummies.
  • Docker.
  • Mongo MongoDB.
  • Node Express.

Course Content

  • Introduction –> 1 lecture • 2min.
  • Building One Time Secret REST API –> 12 lectures • 3hr 58min.

Auto Draft

Requirements

  • Familiar with Node and Typescript.
  • Familiar writing tests.
  • Familiar with mongodb.

In this course we are going to implement from scratch a REST API in Node using Typescript and testing with Jest, but using Test Driven Development (TDD). During this exercise, we will follow the Inside-out TDD approach also known as classicist or referred also sometimes as Chicago school TDD. We will start from deep inside our application and build our way out until we have meet all the business requirements, being at any time covered by our own tests.

The API we are going to build is a clone of the One Time Secret site. We will create an application that stores our secrets and provides us a URL to access them later, but with the condition that we can access that URL one time only. Whenever we attempt to retrieve the same secret again, hitting the same URL for a second time, we will receive an error. We will use a mongodb as a persistence layer.

At the beginning of this course, we will analyze the business requirements just mentioned before and we will see how we translate that into working and well crafted code. We will see how we design the application and how we implement it, using a TDD approach having all the time our production code under control. We will get some inspiration from DDD, Hexagonal arch and CQRS to design our solution.

Get Tutorial