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" )