ticket_article_twitter_test.rb 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. require 'test_helper'
  2. class TicketArticleTwitter < ActiveSupport::TestCase
  3. test 'preferences cleanup' do
  4. org_community = Organization.create_if_not_exists(
  5. name: 'Zammad Foundation',
  6. )
  7. user_community = User.create_or_update(
  8. login: 'article.twitter@example.org',
  9. firstname: 'Article',
  10. lastname: 'Twitter',
  11. email: 'article.twitter@example.org',
  12. password: '',
  13. active: true,
  14. roles: [ Role.find_by(name: 'Customer') ],
  15. organization_id: org_community.id,
  16. updated_by_id: 1,
  17. created_by_id: 1,
  18. )
  19. ticket1 = Ticket.create!(
  20. group_id: Group.first.id,
  21. customer_id: user_community.id,
  22. title: 'Tweet 1!',
  23. updated_by_id: 1,
  24. created_by_id: 1,
  25. )
  26. article1 = Ticket::Article.create!(
  27. ticket_id: ticket1.id,
  28. type_id: Ticket::Article::Type.find_by(name: 'twitter status').id,
  29. sender_id: Ticket::Article::Sender.find_by(name: 'Customer').id,
  30. from: '@example',
  31. body: 'some tweet',
  32. internal: false,
  33. preferences: TweetBase.new.preferences_cleanup(ActiveSupport::HashWithIndifferentAccess.new(
  34. twitter: {
  35. 'mention_ids' => [1_234_567_890],
  36. 'geo' => Twitter::NullObject.new,
  37. 'retweeted' => false,
  38. 'possibly_sensitive' => false,
  39. 'in_reply_to_user_id' => 1_234_567_890,
  40. 'place' => Twitter::NullObject.new,
  41. 'retweet_count' => 0,
  42. 'source' => '<a href="http://example.com/software/tweetbot/mac" rel="nofollow">Tweetbot for Mac</a>',
  43. 'favorited' => false,
  44. 'truncated' => false
  45. },
  46. links: [
  47. {
  48. url: 'https://twitter.com/statuses/123',
  49. target: '_blank',
  50. name: 'on Twitter',
  51. },
  52. ],
  53. )),
  54. updated_by_id: 1,
  55. created_by_id: 1,
  56. )
  57. assert(article1.preferences[:twitter])
  58. assert_equal(1_234_567_890, article1.preferences[:twitter][:mention_ids][0])
  59. assert_nil(article1.preferences[:twitter][:geo])
  60. assert_equal(NilClass, article1.preferences[:twitter][:geo].class)
  61. end
  62. end