more tests

This commit is contained in:
Ticruz
2025-02-04 13:21:23 +01:00
committed by Jon Staab
parent 8c638a7d8f
commit 23f7244039
14 changed files with 83 additions and 80 deletions
@@ -12,7 +12,7 @@ describe("ConnectionSender", () => {
beforeEach(() => {
vi.useFakeTimers()
connection = new Connection("wss://test.relay/")
connection.socket.send = vi.fn().mockResolvedValue(undefined)
connection.socket.send = vi.fn()
connection.socket.open = vi.fn().mockResolvedValue(undefined)
connection.socket.status = SocketStatus.Open
connection.send = vi.fn().mockResolvedValue(undefined)
@@ -28,7 +28,7 @@ describe("ConnectionSender", () => {
it("should not defer CLOSE messages", async () => {
// First send a REQ message to set up the pending request
const reqId = "subscription-id"
sender.push([
connection.sender.push([
"REQ",
reqId,
{
@@ -37,10 +37,12 @@ describe("ConnectionSender", () => {
] as Message)
const message: Message = ["CLOSE", reqId]
// there is a setTimeout in the worker, so we need to advance timers
vi.advanceTimersByTime(50)
sender.push(message)
await vi.advanceTimersByTimeAsync(50)
connection.sender.push(message)
// there is a setTimeout in the worker, so we need to advance timers
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(150)
expect(connection.socket.send).toHaveBeenCalledWith(message)
})
@@ -96,8 +98,8 @@ describe("ConnectionSender", () => {
it("should defer REQ messages when too many pending requests", () => {
connection.socket.status = SocketStatus.Open
connection.auth.status = AuthStatus.Ok
// Set up 8 pending requests
for (let i = 0; i < 8; i++) {
// Set up 50 pending requests
for (let i = 0; i < 50; i++) {
connection.state.pendingRequests.set(`req${i}`, {
filters: [],
sent: Date.now(),
@@ -191,7 +193,7 @@ describe("ConnectionSender", () => {
]
messages.forEach(msg => sender.push(msg))
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
const sendCalls = connection.socket.send.mock.calls
expect(sendCalls.map(call => call[0])).toEqual(messages)
@@ -25,7 +25,7 @@ describe("ConnectionState", () => {
const filters = [{kinds: [1]}]
connection.sender.worker.push(["REQ", reqId, ...filters])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(state.pendingRequests.has(reqId)).toBe(true)
expect(state.pendingRequests.get(reqId)).toEqual({
@@ -43,7 +43,7 @@ describe("ConnectionState", () => {
})
connection.socket.worker.push(["CLOSED", reqId])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(state.pendingRequests.has(reqId)).toBe(false)
})
@@ -56,7 +56,7 @@ describe("ConnectionState", () => {
})
connection.socket.worker.push(["EOSE", reqId])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(state.pendingRequests.get(reqId)?.eose).toBe(true)
})
@@ -67,7 +67,7 @@ describe("ConnectionState", () => {
const event = {id: "event123", kind: 1}
connection.sender.worker.push(["EVENT", event])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(state.pendingPublishes.has(event.id)).toBeTruthy()
expect(state.pendingPublishes.get(event.id)).toEqual({
@@ -84,7 +84,7 @@ describe("ConnectionState", () => {
})
connection.socket.worker.push(["OK", eventId, true])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(state.pendingPublishes.has(eventId)).toBe(false)
})
@@ -97,7 +97,7 @@ describe("ConnectionState", () => {
})
connection.socket.worker.push(["OK", event.id, false, "auth-required:challenge123"])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
// Event should still be in pending publishes
expect(state.pendingPublishes.has(event.id)).toBe(true)
@@ -113,7 +113,7 @@ describe("ConnectionState", () => {
})
connection.socket.worker.push(["OK", event.id, false, "auth-required:challenge123"])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
// Event should be removed from pending publishes
expect(state.pendingPublishes.has(event.id)).toBe(false)
@@ -128,7 +128,7 @@ describe("ConnectionState", () => {
connection.on(ConnectionEvent.Notice, noticeSpy)
connection.socket.worker.push(["NOTICE", "test notice"])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(noticeSpy).toHaveBeenCalledWith(connection, "test notice")
})
@@ -138,7 +138,7 @@ describe("ConnectionState", () => {
connection.on(ConnectionEvent.Notice, noticeSpy)
connection.socket.worker.push(["CLOSED", "req123", "auth-required:challenge123"])
vi.advanceTimersByTime(50)
await vi.advanceTimersByTimeAsync(50)
expect(noticeSpy).toHaveBeenCalledWith(connection, "auth-required:challenge123")
})
-1
View File
@@ -42,7 +42,6 @@ export class ConnectionSender {
if (verb === "CLOSE" && !cxn.state.pendingRequests.has(message[1])) {
return
}
cxn.socket.send(message)
})
}