Skip to content

Commit a7615a7

Browse files
author
magne
committed
Adds tests to check for stream arguments
1 parent 131a2a7 commit a7615a7

File tree

3 files changed

+39
-0
lines changed

3 files changed

+39
-0
lines changed

test/support/rabbit.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import got from "got"
22
import { getTestNodesFromEnv } from "./util"
33
import { range } from "../../src/util"
4+
import { CreateStreamArguments } from "../../src/requests/create_stream_request"
45

56
export interface RabbitConnectionResponse {
67
name: string
@@ -26,6 +27,7 @@ interface MessageInfoResponse {
2627
messages_unacknowledged: number
2728
types: "stream" | "quorum" | "classic"
2829
node: string
30+
arguments?: CreateStreamArguments
2931
}
3032

3133
interface RabbitPublishersResponse {
@@ -96,6 +98,7 @@ export class Rabbit {
9698
responseType: "json",
9799
}
98100
)
101+
99102
return ret.body
100103
}
101104

test/unit/create_stream.test.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,21 @@ describe("Stream", () => {
4343
expect(result.name).to.be.eql(streamName)
4444
})
4545

46+
it("Should create a new Stream with the given arguments", async () => {
47+
const resp = await client.createStream({ stream: streamName, arguments: payload })
48+
49+
expect(resp).to.be.true
50+
const result = await rabbit.getQueueInfo(streamName)
51+
expect(result.arguments).to.be.eql({
52+
"x-queue-type": "stream",
53+
"x-queue-leader-locator": payload["queue-leader-locator"],
54+
"x-max-age": payload["max-age"],
55+
"x-stream-max-segment-size-bytes": payload["stream-max-segment-size-bytes"],
56+
"x-initial-cluster-size": payload["initial-cluster-size"],
57+
"x-max-length-bytes": payload["max-length-bytes"],
58+
})
59+
})
60+
4661
it("Should be idempotent and ignore a duplicate Stream error", async () => {
4762
await client.createStream({ stream: streamName, arguments: payload })
4863
const resp = await client.createStream({ stream: streamName, arguments: payload })

test/unit/create_super_stream.test.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,27 @@ describe("Super Stream", () => {
4747
expect(result.map((r) => r.name)).to.have.members(Array.from(Array(3).keys()).map((n) => `${streamName}-${n}`))
4848
})
4949

50+
it("Should create a new Super Stream with 3 partitions by default with the given arguments", async () => {
51+
const resp = await client.createSuperStream({ streamName, arguments: payload })
52+
53+
expect(resp).to.be.true
54+
const result = await rabbit.getSuperStreamQueues("%2F", streamName)
55+
expect(result.map((r) => r.name)).to.have.members(Array.from(Array(3).keys()).map((n) => `${streamName}-${n}`))
56+
await Promise.all(
57+
Array.from(Array(3).keys()).map(async (n) => {
58+
const queue = await rabbit.getQueueInfo(`${streamName}-${n}`)
59+
expect(queue.arguments).to.be.eql({
60+
"x-queue-type": "stream",
61+
"x-queue-leader-locator": payload["queue-leader-locator"],
62+
"x-max-age": payload["max-age"],
63+
"x-stream-max-segment-size-bytes": payload["stream-max-segment-size-bytes"],
64+
"x-initial-cluster-size": payload["initial-cluster-size"],
65+
"x-max-length-bytes": payload["max-length-bytes"],
66+
})
67+
})
68+
)
69+
})
70+
5071
it("Should create a new Super Stream with 2 partitions", async () => {
5172
const resp = await client.createSuperStream({ streamName, arguments: payload }, undefined, 2)
5273

0 commit comments

Comments
 (0)