Running Tests with the Test Runner
Our First Test
AdonisJS Testing Stack
Why Bother Testing?
Generating Dynamic Open Graph Images
DeIndexing Documents
Indexing New Documents
Performing A Multi-Search
Unpoly Search & Render
Full-Text Search
Meilisearch Index Ace CLI Command
Meilisearch Service
Seeding Fake Data
Migrations, Models, and Factories
Creating our AdonisJS Project

Get Ship Done

Adocasts teaches you how to ship NodeJS apps in no time using AdonisJS and it's many built-in batteries.

Adocasts by the numbers

Comprehensive library
431
Lessons & counting
Skills mastered
35.7k
Lesson completions
Growing community
4k
Members strong
Vibrant discussions
1.1k
Comments & forum posts

Learn one step at a time

Pragmatic Testing in AdonisJS with Japa

Throughout this series, we'll introduce the Japa testing framework, which comes prepackaged with most AdonisJS starter kits. We'll understand how it integrates with AdonisJS, the CLI options it provides, it's assertion library, plugins, and more.

4 Lessons
20m 28s

AdonisJS Scenarios

In this ongoing series, we'll cover various scenarios you're likely to run into while developing or maintaining an AdonisJS application. Topics will range from authentication challenges to database management, testing, and more.

3 Lessons
37m 37s

Building A Multi-Search with Meilisearch & AdonisJS

In this series, we'll build a server-rendered mutli-search utilizing Meilisearch, Unpoly, and a sprinkle of AlpineJS. We'll setup factories and seeders to make fake data to allow us to index and search against books, authors, and genres simultaneously!

12 Lessons
1h 38m

AdonisJS Quick Tip

Quick tips, lessons, and screencasts covering specific topics on AdonisJS.

25 Lessons
2h 59m

Adding an API to an AdonisJS Web App

In this series, we'll add a API, using Opaque Access Tokens for authentication, to a preexisting web application. We'll implement dual-guard authentication, add a token management panel, and authenticate our API directly with an organization model!

43 Lessons
5h 31m

Dive into a topic

null

AdonisJS

18 series 419 lessons
AdonisJS
EdgeJS

EdgeJS

8 series 91 lessons
EdgeJS
Database

Lucid

12 series 158 lessons
Database
Authentication

Authentication

9 series 44 lessons
Authentication
Terminal

Ace CLI

3 series 16 lessons
Action

Actions

2 series 36 lessons
AlpineJS Icon

AlpineJS

2 series 7 lessons
Authorization badge

Authorization

3 series 14 lessons
null

AWS Amplify

1 series 8 lessons
Padlock

Bouncer

1 series 4 lessons
Components

Components

3 series 35 lessons
Control panel icon

Controllers

7 series 35 lessons
Debugging icon

Debugging

1 series 4 lessons
Drive

Drive

1 series 1 lessons
Email

Email

2 series 6 lessons
Filtering

Filtering

4 series 14 lessons
HTMX

HTMX

1 series 5 lessons
HttpContext

HttpContext

6 series 26 lessons
null

InertiaJS

2 series 102 lessons
null

JavaScript

3 series 11 lessons
Markdown icon

Markdown

1 series 3 lessons
null

Nuxt

1 series 7 lessons
Pagination

Pagination

2 series 8 lessons
Rate Limiting

Rate Limiting

1 series 4 lessons
Redis logo

Redis

1 series 2 lessons
Router

Router

6 series 51 lessons
Services icon

Services

5 series 19 lessons
Tailwind CSS Icon

Tailwind

4 series 22 lessons
AdonisJS Testing

Testing

4 lessons
Idea lightbulb

Tips

3 series 25 lessons
TypeScript logo

TypeScript

1 series 10 lessons
Validation dials

Validator

5 series 38 lessons
Vite logo

Vite

1 series 3 lessons
VS Code logo

VS Code

3 lessons
null

VueJS

3 series 90 lessons

Jump straight to the latest

Video preview
Running Tests with the Test Runner
Video preview

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.

Video preview
Our First Test
Video preview

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.

Video preview
AdonisJS Testing Stack
Video preview

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.

Video preview
Why Bother Testing?
Video preview

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.

Video preview
Adocasts Plus Exclusive
Exclusive
Generating Dynamic Open Graph Images
Video preview

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.

Video preview
Adocasts Plus Exclusive
Exclusive
DeIndexing Documents
Video preview

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.

Video preview
Adocasts Plus Exclusive
Exclusive
Indexing New Documents
Video preview

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.

Video preview
Adocasts Plus Exclusive
Exclusive
Performing A Multi-Search
Video preview

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.

Video preview
Adocasts Plus Exclusive
Exclusive
Unpoly Search & Render
Video preview

Making our Search Results Functional with Unpoly

In this lesson, we'll install and configure Unpoly to handle our search form's submission. We'll then server-render the search's results using EdgeJS and return it back as our response for Unpoly to swap in-place directly in the working document.

Video preview
Adocasts Plus Exclusive
Exclusive
Full-Text Search
Video preview

Performing Full-Text Search

In this lesson, we'll learn how to perform a full-text search with Meilisearch while also building the structural base for what will eventually serve as our multi-search autocomplete.

Launch into Adocasts Plus

Get access to all the tools, tips, and real-world knowledge to build with confidence. Just choose the plan that fits you best.

  • Unlock all series, lessons, and assets
  • Repo downloads & GitHub access
  • Download lessons to watch offline anytime
  • Save time-stamped notes
  • Priority lesson support
  • Renewal reminders; cancel anytime

Monthly plan

Just getting started? Try Adocasts Plus on a month-by-month basis and unlock everything instantly with no strings attached.

$8

USD

per month

Annual plan

Ready to level up your Node game? Go annual and save big while accessing all premium content, all year long.

$80

USD

per year

Forever plan

All-in forever? One-time payment, lifetime access. Everything we make, now and in the future, is yours.

$285

USD

per lifetime