summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorJeff Weiss <jeff.weiss@puppetlabs.com>2016-03-30 23:16:33 -0700
committerJeff Weiss <jeff.weiss@puppetlabs.com>2016-03-30 23:19:12 -0700
commitdcee567e1d2d98173df6ec022ec1ed5f66c92b9d (patch)
tree961ef79ce3b5e784d9fbccf9d6595e70dcd0845b /test
parentMerge pull request #46 from jeffweiss/add_test_for_stripping_rank_from_nicks (diff)
handle QUIT messages
Prior to this commit ExIrc did not know what to do with QUIT messages, which would result in nicks remaining in the `Channels` data structure when they should not. This commit implements handling of the QUIT message and ensures that the new `Channels.user_quit` function is called to flush the departing user from all known channels. Close #40
Diffstat (limited to 'test')
-rw-r--r--test/channels_test.exs15
1 files changed, 15 insertions, 0 deletions
diff --git a/test/channels_test.exs b/test/channels_test.exs
index 1c0b424..a1549ca 100644
--- a/test/channels_test.exs
+++ b/test/channels_test.exs
@@ -100,6 +100,21 @@ defmodule ExIrc.ChannelsTest do
assert {:error, :no_such_channel} == Channels.channel_has_user?(channels, "#testchannel", "testnick")
end
+ test "Can quit a user from all channels" do
+ channels =
+ Channels.init()
+ |> Channels.join("#testchannel")
+ |> Channels.user_join("#testchannel", "testnick")
+ |> Channels.join("#anotherchannel")
+ |> Channels.user_join("#anotherchannel", "testnick")
+ |> Channels.user_join("#anotherchannel", "secondnick")
+ assert Channels.channel_has_user?(channels, "#testchannel", "testnick")
+ channels = channels |> Channels.user_quit("testnick")
+ refute Channels.channel_has_user?(channels, "#testchannel", "testnick")
+ refute Channels.channel_has_user?(channels, "#anotherchannel", "testnick")
+ assert Channels.channel_has_user?(channels, "#anotherchannel", "secondnick")
+ end
+
test "Can rename a user" do
channels = Channels.init()
|> Channels.join("#testchannel")