Building APIs doing Outside-In TDD in Node and Typescript

A practical example on how to build REST API doing Outside-In TDD in Node, Typescript and Jest (express and mongodb)

In this course we will implement a REST API in Node with express and typescript. We will store data in a mongodb database using mongoose. In order to implement this REST API, we will receive an OpenAPI Specification (OAS) file that will be the base to design and build our application.

What you’ll learn

  • Build REST API in Node and TypeScript.
  • Test with Jest framework.
  • Outside-in TDD approach a.k.a. mockist a.k.a. London school TDD.
  • Test doubles, mocks, spies, stubs, fakes and dummies.
  • Docker.
  • Mongo MongoDB Mongoose.
  • Node and Express.

Course Content

  • Introduction –> 1 lecture • 2min.
  • Problem Presentation and Project Initialization –> 3 lectures • 16min.
  • Retrieve Data from the system –> 9 lectures • 2hr 58min.
  • Store data from the system –> 7 lectures • 1hr 47min.
  • End To End Testing with Jest and supertest –> 1 lecture • 16min.

Auto Draft

Requirements

  • Familiar with Node, Express and Typescript.
  • Familiar writing tests.
  • Familiar with docker and mongodb.

In this course we will implement a REST API in Node with express and typescript. We will store data in a mongodb database using mongoose. In order to implement this REST API, we will receive an OpenAPI Specification (OAS) file that will be the base to design and build our application.

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.

Given that we already know how the public interface would look like with the OpenAPI Specification file provided, we will be using Test Driven Development (TDD) but following an Outside-In approach, also known as mockist approach or London School TDD. We will start writing the acceptance criteria tests, keeping them in red, we will start the double cycle and write unit tests for the inner components. That way we will build our way inside the application, one level at a time until we can make the acceptance test completely pass. While coding, even though we already have a quite clear direction of our application design, we will try to get inspired with DDD, Hexagonal Architecture and CQRS.

Get Tutorial