chore: socket.js test
This commit is contained in:
parent
eb551d1c4a
commit
87d5f5ee3f
1 changed files with 95 additions and 0 deletions
95
tests/socket.test.js
Normal file
95
tests/socket.test.js
Normal file
|
@ -0,0 +1,95 @@
|
|||
// server
|
||||
// tests/socket.test.js
|
||||
|
||||
const EventEmitter = require("events")
|
||||
const socketHandler = require("../app/socket")
|
||||
// const WebSSH2Socket = require("../app/socket")
|
||||
|
||||
jest.mock("../app/ssh")
|
||||
|
||||
describe("socketHandler", () => {
|
||||
let io
|
||||
let socket
|
||||
let config
|
||||
|
||||
beforeEach(() => {
|
||||
socket = new EventEmitter()
|
||||
socket.id = "test-socket-id"
|
||||
socket.handshake = {
|
||||
session: {}
|
||||
}
|
||||
socket.emit = jest.fn()
|
||||
|
||||
io = {
|
||||
on: jest.fn(function(event, callback) {
|
||||
if (event === "connection") {
|
||||
callback(socket)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
config = {
|
||||
ssh: {
|
||||
term: "xterm-color"
|
||||
},
|
||||
options: {
|
||||
allowreauth: true
|
||||
}
|
||||
}
|
||||
|
||||
socketHandler(io, config)
|
||||
})
|
||||
|
||||
afterEach(() => {
|
||||
jest.clearAllMocks()
|
||||
})
|
||||
|
||||
test("should set up connection listener on io", () => {
|
||||
expect(io.on).toHaveBeenCalledWith("connection", expect.any(Function))
|
||||
})
|
||||
|
||||
test("should set up authenticate event listener on socket", () => {
|
||||
expect(socket.listeners("authenticate")).toHaveLength(1)
|
||||
})
|
||||
|
||||
test("should set up terminal event listener on socket", () => {
|
||||
expect(socket.listeners("terminal")).toHaveLength(1)
|
||||
})
|
||||
|
||||
test("should set up disconnect event listener on socket", () => {
|
||||
expect(socket.listeners("disconnect")).toHaveLength(1)
|
||||
})
|
||||
|
||||
test("should emit request_auth when not authenticated", () => {
|
||||
expect(socket.emit).toHaveBeenCalledWith("authentication", {
|
||||
action: "request_auth"
|
||||
})
|
||||
})
|
||||
|
||||
test("should handle authenticate event", () => {
|
||||
const creds = {
|
||||
username: "testuser",
|
||||
password: "testpass",
|
||||
host: "testhost",
|
||||
port: 22
|
||||
}
|
||||
socket.emit("authenticate", creds)
|
||||
// build out later
|
||||
})
|
||||
|
||||
test("should handle terminal event", () => {
|
||||
const terminalData = {
|
||||
term: "xterm",
|
||||
rows: 24,
|
||||
cols: 80
|
||||
}
|
||||
socket.emit("terminal", terminalData)
|
||||
// build out later
|
||||
})
|
||||
|
||||
test("should handle disconnect event", () => {
|
||||
const reason = "test-reason"
|
||||
socket.emit("disconnect", reason)
|
||||
// build out later
|
||||
})
|
||||
})
|
Loading…
Reference in a new issue