Skip to content

Add smoke tests: Lemmy / Kbin #686

@sij411

Description

@sij411

Background

Part of the phase 3 interoperability smoke test rollout tracked in #682 .

Lemmy is a link-aggregator-style ActivityPub server where the primary
federation unit is the community, represented as a Group actor.
Posts are federated as Announce(Create(Note)) — the community wraps
and re-broadcasts content to its followers. Kbin is no longer actively
maintained; Mbin is the preferred
active fork and may be used as an alternative target.

Docker image requirements

  • Deployable via Docker Compose with no manual steps beyond configuration
  • Exposes an HTTP endpoint reachable by the Caddy TLS proxy within the
    smoke Docker network
  • Supports ActivityPub federation out of the box
  • Allows programmatic account creation and API token issuance without
    requiring email verification
  • Note: Lemmy does not implement the Mastodon-compatible API.
    The provisioning script and any new scenarios must use the Lemmy API
    (/api/v3/*) directly

Test scenarios

The six baseline scenarios in orchestrator.ts do not apply here since
Lemmy does not implement the Mastodon-compatible API. The following new
scenarios are required:

  • Fedify → Lemmy (Follow a community): follow a Lemmy community
    (Group actor) from the Fedify harness and verify Accept(Follow) is
    received
  • Lemmy → Fedify (Announce(Create(Note))): post to a Lemmy
    community and verify the harness inbox receives an
    Announce(Create(Note)) activity

The harness inbox listener currently records only top-level activity
types. It needs to be extended to unwrap Announce and inspect the
inner object for the second scenario.

Acceptance criteria

  • test/smoke/lemmy/ is added with the required files:
    docker-compose.yml, Caddyfile.lemmy, Caddyfile.fedify-harness,
    generate-certs.sh, provision.sh, and a server config file
  • The provisioning script creates a test user, obtains an API token, and
    resolves the Fedify harness account
  • Both scenarios above pass reliably
  • A GitHub Actions workflow (.github/workflows/smoke-lemmy.yml) is
    added, triggered on pushes to main, next, and *.*-maintenance
    branches, and on workflow_dispatch

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions