Learn Jest (a JavaScript testing framework) from the basics to production-grade: pre-requisites & environment setup, history, background & why to choose Jest, core concepts & architecture, installation & basic configuration, writing unit tests, mocking & spying, asynchronous testing, snapshot testing, testing React & UI components, TypeScript & Babel support, test coverage, configuration & environment management, testing API & HTTP layers, security & test reliability, running Jest in CI/CD, performance optimization, custom matchers & helpers, monorepos & multi-project testing, migrating & upgrading Jest, operational readiness & runbooks, use cases & testing patterns, ecosystem & tools, up to future-proofing Jest skills with a total of 23 episodes.
This opening episode makes sure you have the basic JavaScript skills, an understanding of testing concepts, and the software you need, such as Node.js, a package manager, and an editor. You will also set up a project directory and verify your first Jest installation.

This episode traces Jest's birth at Facebook, its main advantages such as zero configuration, snapshot testing, and built-in mocking, and provides a thorough comparison with Mocha, Jasmine, Ava, and Vitest to help you choose the right tool.

This episode dissects Jest's internal architecture: the test runner, assertion library, and mocking engine, plus the test lifecycle from setup, execution, to teardown, as well as the rules for discovering test files and the structure of basic configuration.

This episode guides you step by step through adding Jest to Node.js and TypeScript projects, writing test scripts in package.json, organizing folder structure and test file naming, and thoroughly understanding Jest's CLI output.

This core episode teaches unit test structure: declaring with test and describe, basic matchers such as toBe, toEqual, toContain, and toBeTruthy, the setup teardown lifecycle with beforeEach and friends, and how to test pure functions and edge cases.

This episode opens up Jest's mocking engine: creating fake functions with jest.fn and jest.spyOn, distinguishing manual mocks from automatic mocks, replacing modules with jest.mock, and controlling implementations and reset behavior.

This episode equips you with techniques for testing async code: handling promises with the resolves and rejects matchers, the async/await pattern, done-based callbacks, and controlling time with fake timers so tests are fast and deterministic.

This episode covers snapshot testing: the concept of comparing serialized output, using toMatchSnapshot, updating snapshots safely through version control, and applying it to React components and serialized output.

This episode teaches React component testing: integration with React Testing Library, rendering components and inspecting DOM output, testing events, props, state changes, and async UI, and combining snapshot testing for components.

This episode covers Jest's support for TypeScript: running tests with ts-jest or Babel, configuring the right transform, mapping module aliases, and testing typed code without sacrificing speed.
