All Courses Data Structures and Algorithm Database Courses Javascript Courses Typescript Courses

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

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

A real-life example of how to build a REST API using TDD with Nodejs Typescript and jest (and MongoDB)

What you’ll learn

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

  • Build a REST API with TypeScript and Node. Make sure to use both.
  • Test with Jest.
  • Inside-out, or classicist, or Chicago school TDD, is the way to do it.
  • There are people who act as doubles, mocks, spy on each other, stub out, fakes, and dummies in the tests to make sure everything works.
  • Docker.
  • Mongo MongoDB Mongoose.
  • The Node Express.


  • People who know about Node and Typescript.
  • Tests you’ve seen before.
  • Learn about 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 met 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 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.

Who this course is for:

  • Developers who have written code before.
  • Developers who have written tests before.