Skip to content

Test the queue message wrapper round trip in @fedify/cfworkers #1049

Description

@dahlia

WorkersMessageQueue writes __fedify_ordering_key__ and __fedify_payload__ in enqueue() and enqueueMany(), then reads them back in processMessage(). The wrapper is a wire format with a queue in the middle, and nothing ties the two ends together.

Every processMessage() test builds its input by hand: packages/cfworkers/test/mq.test.ts lines 248, 259, 268, 284, 313, 333, 357, and 380, and packages/cfworkers/src/mod.test.ts lines 331, 346, 381, and 389. The producer tests hard-code the same shape on their own side. Change both sides at once and the suite stays green.

Add a round trip to packages/cfworkers/test/mq.test.ts. Enqueue a message, take the value that send() received, pass it to processMessage(), and check that the payload and the ordering key survive. Do the same for enqueueMany() with one item's body from the sendBatch() call, which also pins down that both producers agree on the shape.

Use the vi.spyOn(env.Q1, …) pattern already in that file rather than adding a mock queue.

Suggested check: mise run check-each cfworkers.

Activity

  1. added theissue type on Sep 22, 2026
  2. Logic-Bin commented on Sep 22, 2026

    @Logic-Bin

    Hi! I'd like to work on this issue. I can add the round-trip tests for both enqueue() and enqueueMany() as described. Could you assign it to me?

  3. Lumia1108 commented on Oct 5, 2026

    @Lumia1108
    Contributor

    Hello, I want to work on this issue. Could you assign it to me?

  4. sij411 commented on Oct 5, 2026

    @sij411
    Member

    @Lumia1108 Just assigned. Thank you.

  5. added this to the Fedify 2.5 milestone on Oct 5, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

Fields

Priority

None yet

Effort

None yet

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions