Skip to main content
Home

Built and signed on GitHub Actions

Testing utilities for Fedify applications

This package works with Cloudflare Workers, Node.js, Deno, Bun
This package works with Cloudflare Workers
This package works with Node.js
This package works with Deno
This package works with Bun
JSR Score
100%
Published
2 days ago (1.10.0)

@fedify/testing

Testing utilities for Fedify applications.

This package provides mock implementations of the Federation and Context interfaces to facilitate unit testing of federated applications built with Fedify.

Installation

deno add @fedify/testing
npm install @fedify/testing
pnpm add @fedify/testing
yarn add @fedify/testing

Usage

MockFederation

The MockFederation class provides a mock implementation of the Federation interface for unit testing:

import { MockFederation } from "@fedify/testing";
import { Create } from "@fedify/fedify/vocab";

// Create a mock federation
const federation = new MockFederation<{ userId: string }>();

// Set up inbox listeners
federation
  .setInboxListeners("/users/{identifier}/inbox")
  .on(Create, async (ctx, activity) => {
    console.log("Received:", activity);
  });

// Simulate receiving an activity
await federation.receiveActivity(createActivity);

// Check sent activities
const sent = federation.sentActivities;
console.log(sent[0].activity);

MockContext

The MockContext class provides a mock implementation of the Context interface:

import { MockContext } from "@fedify/testing";

// Create a mock context
const context = new MockContext({
  url: new URL("https://example.com"),
  data: { userId: "test-user" },
  federation: mockFederation
});

// Send an activity
await context.sendActivity(
  { identifier: "alice" },
  recipient,
  activity
);

// Check sent activities
const sent = context.getSentActivities();
console.log(sent[0].activity);

Helper functions

The package also exports helper functions for creating various context types:

  • createContext(): Creates a basic context
  • createRequestContext(): Creates a request context
  • createInboxContext(): Creates an inbox context

Features

  • Track sent activities with metadata
  • Simulate activity reception
  • Configure custom URI templates
  • Test queue-based activity processing
  • Mock document loaders and context loaders
Built and signed on
GitHub Actions

New Ticket: Report package

Please provide a reason for reporting this package. We will review your report and take appropriate action.

Please review the JSR usage policy before submitting a report.

Add Package

deno add jsr:@fedify/testing

Import symbol

import * as testing from "@fedify/testing";
or

Import directly with a jsr specifier

import * as testing from "jsr:@fedify/testing";

Add Package

pnpm i jsr:@fedify/testing
or (using pnpm 10.8 or older)
pnpm dlx jsr add @fedify/testing

Import symbol

import * as testing from "@fedify/testing";

Add Package

yarn add jsr:@fedify/testing
or (using Yarn 4.8 or older)
yarn dlx jsr add @fedify/testing

Import symbol

import * as testing from "@fedify/testing";

Add Package

vlt install jsr:@fedify/testing

Import symbol

import * as testing from "@fedify/testing";

Add Package

npx jsr add @fedify/testing

Import symbol

import * as testing from "@fedify/testing";

Add Package

bunx jsr add @fedify/testing

Import symbol

import * as testing from "@fedify/testing";