lune/tests/net/socket/basic.luau
2024-03-11 19:11:14 +01:00

28 lines
968 B
Lua

local net = require("@lune/net")
-- We're going to use Discord's WebSocket gateway server for testing
local socket = net.socket("wss://gateway.discord.gg/?v=10&encoding=json")
assert(type(socket.next) == "function", "next must be a function")
assert(type(socket.send) == "function", "send must be a function")
assert(type(socket.close) == "function", "close must be a function")
-- Request to close the socket
socket.close()
-- Drain remaining messages, until we got our close message
while socket.next() do
end
assert(type(socket.closeCode) == "number", "closeCode should exist after closing")
assert(socket.closeCode == 1000, "closeCode should be 1000 after closing")
local success, message = pcall(function()
socket.send("Hello, world!")
end)
assert(not success, "send should fail after closing")
assert(
string.find(tostring(message), "closed") or string.find(tostring(message), "closing"),
"send should fail with a message that the socket was closed"
)