Lessons
Our series are curated collections of lessons that walk through a specific topic from beginning to end. Series are a great way to learn a topic in a structured way.
Unit Testing Event Listeners
In this lesson, learn how to unit test AdonisJS Event Listeners with Japa. Use the Mail Fake to isolate the test, instantiate the listener, manually call the listener and pass data, and use assertions to confirm the expected email was queued.
Introduction to Fakes
In this lesson, we'll use AdonisJS Fakes in Japa for isolated testing of service dependencies (like email). Learn to put the mail service in fake mode, call the service method, use built-in assertions, and ensure proper cleanup.
Introduction to Mocks & Dependency Swapping
In this lesson, we'll cover Unit Testing services with dependencies. Learn to create a mock for a dependency and use the AdonisJS IoC Container to replace the real dependency with your mock, ensuring isolated and side-effect-free testing.
Testing a Simple Service
In this lesson, we'll focus on Unit Testing in AdonisJS using Japa. Learn how to write isolated tests for a service's business logic, including asserting correct results and handling expected exceptions.
Filtering & Controlling Test Runs
In this lesson, learn how to control Japa's test execution. Ignore tests using skip, only run specific tests using pinning, and also how assigning tags can powerfully allow us to easily filter tests across specs.
Data-Driven Tests with Datasets
In this lesson, learn to write DRY tests using Japa's datasets! Define an array or callback function of data (primitives or objects) to run a single test multiple times, enabling TypeScript inference, and using interpolation in the test name for context.
Testing Async Code & Exceptions
In this lesson, we'll cover testing asynchronous code in AdonisJS using Japa. Learn to assert successful promises with both async/await and promise chaining. We'll then discuss testing rejected promises and what to watch for to prevent false positives.
Group & Test Lifecycle Hooks
In this lesson, we'll walk through a number of lifecycle hooks we can use on a per-group and per-test basis. We'll also discuss how we can run a hook for each test and how setup hooks allow a convenient cleanup method.
Naming Tests
In this lesson, we'll discuss how to quickly write a good test name in a single, brief sentence.
Making Assertions
In this lesson, we'll get comfy with making assertions against actual and expected values. We'll step through and demo several highly used assertion methods to see exactly how they work.
Running Tests with the Test Runner
In this lesson, we'll learn about the various ways we can use the Ace CLI and Japa's test runner to execute all, some, or individual tests.
Our First Test
In this lesson, we'll write our first test with Japa and learn about spec files, as well as the three key components of crafting a good test: arrange, act, and assert.
The AdonisJS Testing Stack
In this lesson, we'll pull down the starter project for this series and use it to discuss how Japa is integrated within AdonisJS projects.
Why Bother Testing?
In this lesson, we'll discuss what the benefits of testing are, what we should focus on when testing, and give a brief introduction to this series.
AdonisJS Scenarios #3.0
Generating Dynamic OG Images with AdonisJS & Puppeteer
In this lesson, we'll learn how to generate dynamic Open Graph (OG) images using AdonisJS and Puppeteer. We'll also add rate limiting to limit the number of OG images being generated at once and discuss some things to watch out for.
Removing Indexed Documents when they're Deleted
In this lesson, we'll learn how we can remove documents from a Meilisearch index as records are deleted from our application. For this, we'll deindex author documents when a user deletes their account in our application.
Indexing Data as its Created
In this lesson, we'll learn how we can dynamically index documents in Meilisearch as records are created within our application. For this, we'll index a new author document when a user registers within our application.
Performing a Multi-Search Across Indexes
In this lesson, we'll piece everything together into our final multi-search by searching across our book, genre, and author indexes within Meilisearch with a single call. We'll also discuss how we can get a single federated result array back if desired.
Showing 1 to 18 of 441 results