test_helpers.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. package handler
  2. import (
  3. "time"
  4. "github.com/mkaminski/goaim/state"
  5. )
  6. // sessOptWarning sets a warning level on the session object
  7. func sessOptWarning(level uint16) func(session *state.Session) {
  8. return func(session *state.Session) {
  9. session.IncreaseWarning(level)
  10. }
  11. }
  12. // sessOptCannedID sets a canned session ID ("user-sess-id") on the session
  13. // object
  14. func sessOptCannedID(session *state.Session) {
  15. session.SetID("user-sess-id")
  16. }
  17. // sessOptCannedID sets a canned session ID ("user-sess-id") on the session
  18. // object
  19. func sessOptID(ID string) func(session *state.Session) {
  20. return func(session *state.Session) {
  21. session.SetID(ID)
  22. }
  23. }
  24. // sessOptCannedAwayMessage sets a canned away message ("this is my away
  25. // message!") on the session object
  26. func sessOptCannedAwayMessage(session *state.Session) {
  27. session.SetAwayMessage("this is my away message!")
  28. }
  29. // sessOptCannedSignonTime sets a canned sign-on time (1696790127565) on the
  30. // session object
  31. func sessOptCannedSignonTime(session *state.Session) {
  32. session.SetSignonTime(time.UnixMilli(1696790127565))
  33. }
  34. // sessOptCannedSignonTime sets the invisible flag to true on the session
  35. // object
  36. func sessOptInvisible(session *state.Session) {
  37. session.SetInvisible(true)
  38. }
  39. // newTestSession creates a session object with 0 or more functional options
  40. // applied
  41. func newTestSession(screenName string, options ...func(session *state.Session)) *state.Session {
  42. s := state.NewSession()
  43. s.SetScreenName(screenName)
  44. for _, op := range options {
  45. op(s)
  46. }
  47. return s
  48. }