Compare commits
1 Commits
9bd62e5ee9
...
e038fb7666
| Author | SHA1 | Date | |
|---|---|---|---|
| e038fb7666 |
@@ -287,6 +287,44 @@ describe("Yonexus.Server runtime flow", () => {
|
|||||||
expect(recordAfterHeartbeat?.lastHeartbeatAt).toBe(now);
|
expect(recordAfterHeartbeat?.lastHeartbeatAt).toBe(now);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it("returns MALFORMED_MESSAGE for hello without payload and keeps the connection open", async () => {
|
||||||
|
const store = createMockStore();
|
||||||
|
const transportState = createMockTransport();
|
||||||
|
const runtime = createYonexusServerRuntime({
|
||||||
|
config: {
|
||||||
|
followerIdentifiers: ["client-a"],
|
||||||
|
notifyBotToken: "stub-token",
|
||||||
|
adminUserId: "admin-user",
|
||||||
|
listenHost: "127.0.0.1",
|
||||||
|
listenPort: 8787
|
||||||
|
},
|
||||||
|
store,
|
||||||
|
transport: transportState.transport,
|
||||||
|
now: () => 1_710_000_000
|
||||||
|
});
|
||||||
|
|
||||||
|
await runtime.start();
|
||||||
|
|
||||||
|
const connection = createConnection();
|
||||||
|
await runtime.handleMessage(
|
||||||
|
connection,
|
||||||
|
encodeBuiltin({
|
||||||
|
type: "hello",
|
||||||
|
requestId: "req-bad-hello",
|
||||||
|
timestamp: 1_710_000_000
|
||||||
|
})
|
||||||
|
);
|
||||||
|
|
||||||
|
expect(transportState.sentToConnection).toHaveLength(1);
|
||||||
|
const errorResponse = decodeBuiltin(transportState.sentToConnection[0].message);
|
||||||
|
expect(errorResponse.type).toBe("error");
|
||||||
|
expect(errorResponse.payload).toMatchObject({
|
||||||
|
code: "MALFORMED_MESSAGE",
|
||||||
|
message: "hello payload is required"
|
||||||
|
});
|
||||||
|
expect((connection.ws.close as ReturnType<typeof vi.fn>)).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
it("rejects unauthenticated rule messages by closing the connection", async () => {
|
it("rejects unauthenticated rule messages by closing the connection", async () => {
|
||||||
const store = createMockStore();
|
const store = createMockStore();
|
||||||
const transportState = createMockTransport();
|
const transportState = createMockTransport();
|
||||||
|
|||||||
Reference in New Issue
Block a user