mirror of
https://github.com/lune-org/lune.git
synced 2024-12-13 13:30:38 +00:00
29 lines
968 B
Text
29 lines
968 B
Text
|
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"
|
||
|
)
|