mirror of
https://github.com/cloudflare/workers-rs.git
synced 2025-12-08 18:01:59 +00:00
58 lines
1.7 KiB
TypeScript
58 lines
1.7 KiB
TypeScript
import { describe, test, expect } from "vitest";
|
|
import * as uuid from "uuid";
|
|
import { mf, mfUrl } from "./mf";
|
|
|
|
describe("queue", () => {
|
|
test("send message to queue", async () => {
|
|
const resp = await mf.dispatchFetch(
|
|
`${mfUrl}queue/send/${uuid.v4()}`,
|
|
{ method: "POST" }
|
|
);
|
|
expect(resp.status).toBe(200);
|
|
});
|
|
|
|
test("receive message from queue", async () => {
|
|
const id = uuid.v4();
|
|
let resp = await mf.dispatchFetch(`${mfUrl}queue/send/${id}`, {
|
|
method: "POST",
|
|
});
|
|
expect(resp.status).toBe(200);
|
|
|
|
await new Promise((resolve) => setTimeout(resolve, 1200));
|
|
|
|
resp = await mf.dispatchFetch(`${mfUrl}queue`);
|
|
expect(resp.status).toBe(200);
|
|
|
|
const messages = (await resp.json()) as { id: string }[];
|
|
const message = messages.find((msg) => msg.id === id.toString());
|
|
expect(message).toMatchObject({ id: id.toString() });
|
|
});
|
|
|
|
test("batch send message to queue", async () => {
|
|
const id_1 = uuid.v4();
|
|
const id_2 = uuid.v4();
|
|
|
|
let resp = await mf.dispatchFetch(`${mfUrl}queue/send_batch`, {
|
|
method: "POST",
|
|
body: JSON.stringify([{ id: id_1, id_string: id_1 }, { id: id_2, id_string: id_2 }])
|
|
});
|
|
|
|
expect(resp.status).toBe(200);
|
|
|
|
await new Promise((resolve) => setTimeout(resolve, 1200));
|
|
|
|
resp = await mf.dispatchFetch(`${mfUrl}queue`);
|
|
expect(resp.status).toBe(200);
|
|
|
|
let body = await resp.json();
|
|
|
|
const messages = body as { id: string }[];
|
|
|
|
const message_1 = messages.find((msg) => msg.id === id_1.toString());
|
|
expect(message_1).toMatchObject({ id: id_1.toString() });
|
|
|
|
const message_2 = messages.find((msg) => msg.id === id_2.toString());
|
|
expect(message_2).toMatchObject({ id: id_2.toString() });
|
|
});
|
|
});
|