overview_test.rb 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367
  1. require 'test_helper'
  2. class OverviewTest < ActiveSupport::TestCase
  3. test 'overview link' do
  4. UserInfo.current_user_id = 1
  5. overview = Overview.create!(
  6. name: 'Not Shown Admin 2',
  7. condition: {
  8. 'ticket.state_id' => {
  9. operator: 'is',
  10. value: [1, 2, 3],
  11. },
  12. },
  13. order: {
  14. by: 'created_at',
  15. direction: 'DESC',
  16. },
  17. view: {
  18. d: %w[title customer state created_at],
  19. s: %w[number title customer state created_at],
  20. m: %w[number title customer state created_at],
  21. view_mode_default: 's',
  22. },
  23. )
  24. assert_equal(overview.link, 'not_shown_admin_2')
  25. overview.destroy!
  26. overview = Overview.create!(
  27. name: 'My assigned Tickets 2',
  28. condition: {
  29. 'ticket.state_id' => {
  30. operator: 'is',
  31. value: [1, 2, 3],
  32. },
  33. },
  34. order: {
  35. by: 'created_at',
  36. direction: 'DESC',
  37. },
  38. view: {
  39. d: %w[title customer state created_at],
  40. s: %w[number title customer state created_at],
  41. m: %w[number title customer state created_at],
  42. view_mode_default: 's',
  43. },
  44. )
  45. assert_equal(overview.link, 'my_assigned_tickets_2')
  46. overview.destroy!
  47. overview = Overview.create!(
  48. name: 'Übersicht',
  49. condition: {
  50. 'ticket.state_id' => {
  51. operator: 'is',
  52. value: [1, 2, 3],
  53. },
  54. },
  55. order: {
  56. by: 'created_at',
  57. direction: 'DESC',
  58. },
  59. view: {
  60. d: %w[title customer state created_at],
  61. s: %w[number title customer state created_at],
  62. m: %w[number title customer state created_at],
  63. view_mode_default: 's',
  64. },
  65. )
  66. assert_equal(overview.link, 'ubersicht')
  67. overview.destroy!
  68. overview = Overview.create!(
  69. name: " Übersicht \n",
  70. condition: {
  71. 'ticket.state_id' => {
  72. operator: 'is',
  73. value: [1, 2, 3],
  74. },
  75. },
  76. order: {
  77. by: 'created_at',
  78. direction: 'DESC',
  79. },
  80. view: {
  81. d: %w[title customer state created_at],
  82. s: %w[number title customer state created_at],
  83. m: %w[number title customer state created_at],
  84. view_mode_default: 's',
  85. },
  86. )
  87. assert_equal(overview.link, 'ubersicht')
  88. overview.destroy!
  89. overview1 = Overview.create!(
  90. name: 'Meine Übersicht',
  91. condition: {
  92. 'ticket.state_id' => {
  93. operator: 'is',
  94. value: [1, 2, 3],
  95. },
  96. },
  97. order: {
  98. by: 'created_at',
  99. direction: 'DESC',
  100. },
  101. view: {
  102. d: %w[title customer state created_at],
  103. s: %w[number title customer state created_at],
  104. m: %w[number title customer state created_at],
  105. view_mode_default: 's',
  106. },
  107. )
  108. assert_equal(overview1.link, 'meine_ubersicht')
  109. overview2 = Overview.create!(
  110. name: 'Meine Übersicht',
  111. condition: {
  112. 'ticket.state_id' => {
  113. operator: 'is',
  114. value: [1, 2, 3],
  115. },
  116. },
  117. order: {
  118. by: 'created_at',
  119. direction: 'DESC',
  120. },
  121. view: {
  122. d: %w[title customer state created_at],
  123. s: %w[number title customer state created_at],
  124. m: %w[number title customer state created_at],
  125. view_mode_default: 's',
  126. },
  127. )
  128. assert(overview2.link.start_with?('meine_ubersicht'))
  129. assert_not_equal(overview1.link, overview2.link)
  130. overview1.destroy!
  131. overview2.destroy!
  132. overview = Overview.create!(
  133. name: 'Д дФ ф',
  134. condition: {
  135. 'ticket.state_id' => {
  136. operator: 'is',
  137. value: [1, 2, 3],
  138. },
  139. },
  140. order: {
  141. by: 'created_at',
  142. direction: 'DESC',
  143. },
  144. view: {
  145. d: %w[title customer state created_at],
  146. s: %w[number title customer state created_at],
  147. m: %w[number title customer state created_at],
  148. view_mode_default: 's',
  149. },
  150. )
  151. assert_match(/^\d{1,3}$/, overview.link)
  152. overview.destroy!
  153. overview = Overview.create!(
  154. name: ' Д дФ ф abc ',
  155. condition: {
  156. 'ticket.state_id' => {
  157. operator: 'is',
  158. value: [1, 2, 3],
  159. },
  160. },
  161. order: {
  162. by: 'created_at',
  163. direction: 'DESC',
  164. },
  165. view: {
  166. d: %w[title customer state created_at],
  167. s: %w[number title customer state created_at],
  168. m: %w[number title customer state created_at],
  169. view_mode_default: 's',
  170. },
  171. )
  172. assert_equal(overview.link, 'abc')
  173. overview.destroy!
  174. overview = Overview.create!(
  175. name: 'Übersicht',
  176. link: 'my_overview',
  177. condition: {
  178. 'ticket.state_id' => {
  179. operator: 'is',
  180. value: [1, 2, 3],
  181. },
  182. },
  183. order: {
  184. by: 'created_at',
  185. direction: 'DESC',
  186. },
  187. view: {
  188. d: %w[title customer state created_at],
  189. s: %w[number title customer state created_at],
  190. m: %w[number title customer state created_at],
  191. view_mode_default: 's',
  192. },
  193. )
  194. assert_equal(overview.link, 'my_overview')
  195. overview.name = 'Übersicht2'
  196. overview.link = 'my_overview2'
  197. overview.save!
  198. assert_equal(overview.link, 'my_overview2')
  199. overview.destroy!
  200. end
  201. test 'same url' do
  202. UserInfo.current_user_id = 1
  203. overview1 = Overview.create!(
  204. name: 'My own assigned Tickets',
  205. condition: {
  206. 'ticket.state_id' => {
  207. operator: 'is',
  208. value: [1, 2, 3],
  209. },
  210. },
  211. order: {
  212. by: 'created_at',
  213. direction: 'DESC',
  214. },
  215. view: {
  216. d: %w[title customer state created_at],
  217. s: %w[number title customer state created_at],
  218. m: %w[number title customer state created_at],
  219. view_mode_default: 's',
  220. },
  221. )
  222. assert_equal(overview1.link, 'my_own_assigned_tickets')
  223. overview2 = Overview.create!(
  224. name: 'My own assigned Tickets',
  225. condition: {
  226. 'ticket.state_id' => {
  227. operator: 'is',
  228. value: [1, 2, 3],
  229. },
  230. },
  231. order: {
  232. by: 'created_at',
  233. direction: 'DESC',
  234. },
  235. view: {
  236. d: %w[title customer state created_at],
  237. s: %w[number title customer state created_at],
  238. m: %w[number title customer state created_at],
  239. view_mode_default: 's',
  240. },
  241. )
  242. assert_equal(overview2.link, 'my_own_assigned_tickets_1')
  243. overview3 = Overview.create!(
  244. name: 'My own assigned Tickets',
  245. condition: {
  246. 'ticket.state_id' => {
  247. operator: 'is',
  248. value: [1, 2, 3],
  249. },
  250. },
  251. order: {
  252. by: 'created_at',
  253. direction: 'DESC',
  254. },
  255. view: {
  256. d: %w[title customer state created_at],
  257. s: %w[number title customer state created_at],
  258. m: %w[number title customer state created_at],
  259. view_mode_default: 's',
  260. },
  261. )
  262. assert_equal(overview3.link, 'my_own_assigned_tickets_2')
  263. overview1.destroy!
  264. overview2.destroy!
  265. overview3.destroy!
  266. end
  267. test 'priority rearrangement' do
  268. UserInfo.current_user_id = 1
  269. overview1 = Overview.create!(
  270. name: 'Overview1',
  271. link: 'my_overview',
  272. condition: {
  273. 'ticket.state_id' => {
  274. operator: 'is',
  275. value: [1, 2, 3],
  276. },
  277. },
  278. order: {
  279. by: 'created_at',
  280. direction: 'DESC',
  281. },
  282. view: {
  283. d: %w[title customer state created_at],
  284. s: %w[number title customer state created_at],
  285. m: %w[number title customer state created_at],
  286. view_mode_default: 's',
  287. },
  288. prio: 1,
  289. )
  290. overview2 = Overview.create!(
  291. name: 'Overview2',
  292. link: 'my_overview',
  293. condition: {
  294. 'ticket.state_id' => {
  295. operator: 'is',
  296. value: [1, 2, 3],
  297. },
  298. },
  299. order: {
  300. by: 'created_at',
  301. direction: 'DESC',
  302. },
  303. view: {
  304. d: %w[title customer state created_at],
  305. s: %w[number title customer state created_at],
  306. m: %w[number title customer state created_at],
  307. view_mode_default: 's',
  308. },
  309. prio: 2,
  310. )
  311. overview3 = Overview.create!(
  312. name: 'Overview3',
  313. link: 'my_overview',
  314. condition: {
  315. 'ticket.state_id' => {
  316. operator: 'is',
  317. value: [1, 2, 3],
  318. },
  319. },
  320. order: {
  321. by: 'created_at',
  322. direction: 'DESC',
  323. },
  324. view: {
  325. d: %w[title customer state created_at],
  326. s: %w[number title customer state created_at],
  327. m: %w[number title customer state created_at],
  328. view_mode_default: 's',
  329. },
  330. prio: 3,
  331. )
  332. overview2.prio = 3
  333. overview2.save!
  334. overviews = Overview.all.order(prio: :asc).pluck(:id)
  335. assert_equal(overview1.id, overviews[0])
  336. assert_equal(overview3.id, overviews[1])
  337. assert_equal(overview2.id, overviews[2])
  338. overview1.destroy!
  339. overview2.destroy!
  340. overview3.destroy!
  341. end
  342. end