69 lines
1.6 KiB
Plaintext
69 lines
1.6 KiB
Plaintext
irce = require "irce"
|
|
socket = require "socket"
|
|
|
|
describe "ngircd protocol support", ->
|
|
local file
|
|
local last_msg
|
|
client = socket.tcp!
|
|
client\settimeout 1
|
|
irc = irce.new!
|
|
irc\set_send_func (message) =>
|
|
last_msg = message
|
|
print "[server] > " .. message
|
|
client\send message
|
|
irc\load_module require "irce.modules.ngircd"
|
|
|
|
setup ->
|
|
print "got here"
|
|
file = io.popen "ngircd -n -f ./spec/ngircd.conf", "r"
|
|
|
|
teardown ->
|
|
with io.popen "killall ngircd", "r"
|
|
\close!
|
|
with file
|
|
print \read "*all"
|
|
\close!
|
|
|
|
it "actually is running ngircd", ->
|
|
with io.popen "pstree"
|
|
data = \read "*all"
|
|
assert.truthy string.find data, "ngircd"
|
|
|
|
it "registers", ->
|
|
bursted = false
|
|
irc\set_callback "376", =>
|
|
bursted = true
|
|
|
|
client\connect "127.0.0.1", 6667
|
|
irc\REGISTER "hunter2", "kc-test", "0.0.1", "ketracel.akua", "test", "31"
|
|
|
|
while not bursted
|
|
msg = client\receive!
|
|
print "[server] " .. msg
|
|
irc\process msg
|
|
|
|
irc\clear_callback "376"
|
|
|
|
it "can do a normal client connection", ->
|
|
irc_client = socket.tcp!
|
|
ircce = irce.new!
|
|
ircce\set_send_func (message) =>
|
|
print "[client] > " .. message
|
|
irc_client\send message
|
|
running = true
|
|
ircce\set_callback "005", =>
|
|
running = false
|
|
|
|
ircce\load_module require "irce.modules.base"
|
|
irc_client\connect "127.0.0.1", 6667
|
|
ircce\NICK "test"
|
|
ircce\USER "test", "hunter2"
|
|
|
|
while running
|
|
msg = irc_client\receive!
|
|
print "[client] < " .. msg
|
|
ircce\process msg
|
|
|
|
ircce\QUIT "bye"
|
|
irc_client\close!
|