test_helpers.go 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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. // sessOptIdle sets the idle flag to dur on the session object
  40. func sessOptIdle(dur time.Duration) func(session *state.Session) {
  41. return func(session *state.Session) {
  42. session.SetIdle(dur)
  43. }
  44. }
  45. // newTestSession creates a session object with 0 or more functional options
  46. // applied
  47. func newTestSession(screenName string, options ...func(session *state.Session)) *state.Session {
  48. s := state.NewSession()
  49. s.SetScreenName(screenName)
  50. for _, op := range options {
  51. op(s)
  52. }
  53. return s
  54. }