Merge pull request #161 from velour/when

reminder: fix bad subtraction
This commit is contained in:
Chris Sexton 2019-03-09 22:03:30 -05:00 committed by GitHub
commit 47516a82fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 19 deletions

View File

@ -91,8 +91,12 @@ func (p *ReminderPlugin) message(kind bot.Kind, message msg.Message, args ...int
t, err := p.when.Parse(message.Body, time.Now()) t, err := p.when.Parse(message.Body, time.Now())
// Allowing err to fallthrough for other parsing // Allowing err to fallthrough for other parsing
if t != nil && err == nil { if t != nil && err == nil {
t2 := time.Now().Sub(t.Time).String() t2 := t.Time.Sub(time.Now()).String()
message.Body = string(message.Body[0:t.Index]) + t2 + string(message.Body[t.Index+len(t.Text):]) message.Body = string(message.Body[0:t.Index]) + t2 + string(message.Body[t.Index+len(t.Text):])
log.Debug().
Str("body", message.Body).
Str("text", t.Text).
Msg("Got time request")
} }
parts := strings.Fields(message.Body) parts := strings.Fields(message.Body)

View File

@ -58,24 +58,6 @@ func TestReminder(t *testing.T) {
assert.Contains(t, mb.Messages[1], "Hey testuser, tester wanted you to be reminded: don't fail this test") assert.Contains(t, mb.Messages[1], "Hey testuser, tester wanted you to be reminded: don't fail this test")
} }
func TestReminderDate(t *testing.T) {
c, mb := setup(t)
m0 := fmt.Sprintf("!remind testuser at %s don't fail this test 2",
time.Now().Add(3*time.Second).Format("15:04"))
res := c.message(makeMessage(m0))
assert.True(t, res)
m1 := fmt.Sprintf("!remind testuser at %s don't fail this test 1",
time.Now().Add(2*time.Second).Format("15:04"))
res = c.message(makeMessage(m1))
assert.True(t, res)
time.Sleep(5 * time.Second)
assert.Len(t, mb.Messages, 4)
assert.Contains(t, mb.Messages[0], "Sure tester, I'll remind testuser.")
assert.Contains(t, mb.Messages[1], "Hey testuser, tester wanted you to be reminded: don't fail this test 2")
assert.Contains(t, mb.Messages[2], "Sure tester, I'll remind testuser.")
assert.Contains(t, mb.Messages[3], "Hey testuser, tester wanted you to be reminded: don't fail this test 1")
}
func TestReminderReorder(t *testing.T) { func TestReminderReorder(t *testing.T) {
c, mb := setup(t) c, mb := setup(t)
res := c.message(makeMessage("!remind testuser in 2s don't fail this test 2")) res := c.message(makeMessage("!remind testuser in 2s don't fail this test 2"))