4
0

webapi_imlog_test.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package state
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "github.com/stretchr/testify/require"
  6. )
  7. func TestWebAPISession_GetStoredIMs(t *testing.T) {
  8. sess := &WebAPISession{}
  9. sess.AddStoredIM("buddy1", "me", "hello", "msg-1", 100)
  10. sess.AddStoredIM("buddy1", "buddy1", "hi back", "msg-2", 200)
  11. sess.AddStoredIM("buddy2", "buddy2", "other chat", "msg-3", 150)
  12. msgs := sess.GetStoredIMs(StoredIMQuery{
  13. PartnerAimID: "buddy1",
  14. SortOrder: "descendingDate",
  15. NToGet: 10,
  16. })
  17. assert.Len(t, msgs, 2)
  18. assert.Equal(t, "msg-2", msgs[0]["msgId"])
  19. assert.Equal(t, float64(200), msgs[0]["date"])
  20. assert.Equal(t, "hello", msgs[1]["message"])
  21. msgs = sess.GetStoredIMs(StoredIMQuery{
  22. PartnerAimID: "buddy1",
  23. SortOrder: "ascendingDate",
  24. StartTime: 150,
  25. EndTime: 250,
  26. })
  27. assert.Len(t, msgs, 1)
  28. assert.Equal(t, "msg-2", msgs[0]["msgId"])
  29. }
  30. func TestWebAPISession_GetStoredIMs_NormalizesPartner(t *testing.T) {
  31. sess := &WebAPISession{}
  32. sess.AddStoredIM("Mike Kelly", "mikekelly", "hello", "msg-1", 100)
  33. // The web client queries history by the normalized aimId, never by the
  34. // display screen name it was stored under.
  35. msgs := sess.GetStoredIMs(StoredIMQuery{
  36. PartnerAimID: "mikekelly",
  37. NToGet: 10,
  38. })
  39. require.Len(t, msgs, 1)
  40. assert.Equal(t, "msg-1", msgs[0]["msgId"])
  41. }