From 07189d07eea5d2786de5c31921c9fc3b02245da8 Mon Sep 17 00:00:00 2001 From: Gisle Aune Date: Sun, 29 Nov 2020 20:40:17 +0100 Subject: [PATCH] fix query messages' echoes not being put in right target. --- client.go | 3 ++- client_test.go | 24 ++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/client.go b/client.go index 5e0a4ae..88857c6 100644 --- a/client.go +++ b/client.go @@ -1361,8 +1361,9 @@ func (client *Client) handleEvent(event *Event) { // Target the message target := Target(client.status) targetName := event.Arg(0) + if targetName == client.nick { - queryTarget := client.Target("query", targetName) + queryTarget := client.Target("query", event.Nick) if queryTarget == nil { query := &Query{ id: client.id, diff --git a/client_test.go b/client_test.go index 29d65d0..cf90a73 100644 --- a/client_test.go +++ b/client_test.go @@ -243,6 +243,30 @@ func TestClient(t *testing.T) { }}, {Client: "INVALIDCOMMAND stuff and things"}, {Server: ":testserver.example.com 421 Test768 INVALIDCOMMAND :Unknown command"}, + {Callback: func() error { + client.Say("SevenAsterisks", "hi!") + return nil + }}, + {Client: "PRIVMSG SevenAsterisks :hi!"}, + {Server: ":Test768!~Tester@127.0.0.1 PRIVMSG SevenAsterisks :hi!"}, + {Callback: func() error { + event := logger.Last("packet", "PRIVMSG") + if event == nil { + return errors.New("did not find last query message") + } + if event.QueryTarget() == nil { + return errors.New("event lacks query target") + } + if event.QueryTarget().Name() != "SevenAsterisks" { + return errors.New("incorrect query target") + } + + return nil + }}, + {Callback: func() error { + client.EmitInput("/invalidcommand stuff and things", nil) + return nil + }}, {Callback: func() error { channel := client.Channel("#Test") if channel == nil {