model.js 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200
  1. // model
  2. test( "model basic tests", function() {
  3. // define model
  4. var configure_attributes_org = _.clone( App.Ticket.configure_attributes )
  5. var attribute1 = {
  6. name: 'test1', display: 'Test 1', tag: 'input', type: 'text', limit: 200, 'null': false
  7. };
  8. App.Ticket.configure_attributes.push( attribute1 )
  9. var attribute2 = {
  10. name: 'test2', display: 'Test 2', tag: 'input', type: 'text', limit: 200, 'null': true
  11. };
  12. App.Ticket.configure_attributes.push( attribute2 )
  13. var attribute3 = {
  14. name: 'pending_time1', display: 'Pending till1', tag: 'input', type: 'text', limit: 200, 'null': false, required_if: { state_id: [3] },
  15. };
  16. App.Ticket.configure_attributes.push( attribute3 )
  17. var attribute4 = {
  18. name: 'pending_time2', display: 'Pending till2', tag: 'input', type: 'text', limit: 200, 'null': true, required_if: { state_id: [3] },
  19. };
  20. App.Ticket.configure_attributes.push( attribute4 )
  21. // check validation
  22. console.log('TEST 1')
  23. var ticket = new App.Ticket()
  24. ticket.load({title: 'some title'})
  25. var error = ticket.validate()
  26. ok( error['group_id'], 'group_id is required')
  27. ok( !error['title'], 'title is required')
  28. ok( error['state_id'], 'state_id is required')
  29. ok( error['test1'], 'test1 is required')
  30. ok( !error['test2'], 'test2 is not required')
  31. ok( !error['pending_time1'], 'pending_time1 is not required')
  32. ok( !error['pending_time2'], 'pending_time2 is not required')
  33. console.log('TEST 2')
  34. ticket.title = 'some new title'
  35. ticket.state_id = [2,3]
  36. ticket.test2 = 123
  37. error = ticket.validate()
  38. ok( error['group_id'], 'group_id is required')
  39. ok( !error['title'], 'title exists')
  40. ok( !error['state_id'], 'state_id is')
  41. ok( error['test1'], 'test1 is required')
  42. ok( !error['test2'], 'test2 is not required')
  43. ok( error['pending_time1'], 'pending_time1 is required')
  44. ok( error['pending_time2'], 'pending_time2 is required')
  45. console.log('TEST 3')
  46. ticket.title = 'some new title'
  47. ticket.state_id = [2,1]
  48. ticket.test2 = 123
  49. error = ticket.validate()
  50. ok( error['group_id'], 'group_id is required')
  51. ok( !error['title'], 'title exists')
  52. ok( !error['state_id'], 'state_id is')
  53. ok( error['test1'], 'test1 is required')
  54. ok( !error['test2'], 'test2 is not required')
  55. ok( !error['pending_time1'], 'pending_time1 is required')
  56. ok( !error['pending_time2'], 'pending_time2 is required')
  57. console.log('TEST 4')
  58. ticket.title = 'some new title'
  59. ticket.state_id = [2,3]
  60. ticket.test2 = 123
  61. error = ticket.validate()
  62. ok( error['group_id'], 'group_id is required')
  63. ok( !error['title'], 'title exists')
  64. ok( !error['state_id'], 'state_id is')
  65. ok( error['test1'], 'test1 is required')
  66. ok( !error['test2'], 'test2 is not required')
  67. ok( error['pending_time1'], 'pending_time1 is required')
  68. ok( error['pending_time2'], 'pending_time2 is required')
  69. console.log('TEST 5')
  70. ticket.title = 'some new title'
  71. ticket.state_id = [2,3]
  72. ticket.test2 = 123
  73. ticket.pending_time1 = '2014-10-10 09:00'
  74. error = ticket.validate()
  75. ok( error['group_id'], 'group_id is required')
  76. ok( !error['title'], 'title exists')
  77. ok( !error['state_id'], 'state_id is')
  78. ok( error['test1'], 'test1 is required')
  79. ok( !error['test2'], 'test2 is not required')
  80. ok( !error['pending_time1'], 'pending_time1 is required')
  81. ok( error['pending_time2'], 'pending_time2 is required')
  82. // define model with screen
  83. App.Ticket.configure_attributes = configure_attributes_org
  84. var attribute1 = {
  85. name: 'test1', display: 'Test 1', tag: 'input', type: 'text', limit: 200, 'null': false, screen: { some_screen: { required_if: { state_id: [3] } } },
  86. };
  87. App.Ticket.configure_attributes.push( attribute1 )
  88. var attribute2 = {
  89. name: 'test2', display: 'Test 2', tag: 'input', type: 'text', limit: 200, 'null': true, screen: { some_screen: { required_if: { state_id: [3] } } },
  90. };
  91. App.Ticket.configure_attributes.push( attribute2 )
  92. var attribute3 = {
  93. name: 'group_id', display: 'Group', tag: 'select', multiple: false, null: false, relation: 'Group', screen: { some_screen: { null: false } },
  94. };
  95. App.Ticket.configure_attributes.push( attribute3 )
  96. var attribute4 = {
  97. name: 'owner_id', display: 'Owner', tag: 'select', multiple: false, null: false, relation: 'User', screen: { some_screen: { null: false } },
  98. };
  99. App.Ticket.configure_attributes.push( attribute4 )
  100. var attribute5 = {
  101. name: 'state_id', display: 'State', tag: 'select', multiple: false, null: false, relation: 'TicketState', screen: { some_screen: { null: false } },
  102. };
  103. App.Ticket.configure_attributes.push( attribute5 )
  104. // check validation with screen
  105. console.log('TEST 6')
  106. ticket = new App.Ticket()
  107. ticket.load({title: 'some title'})
  108. error = ticket.validate()
  109. ok( error['group_id'], 'group_id is required')
  110. ok( !error['title'], 'title is required')
  111. ok( error['state_id'], 'state_id is required')
  112. ok( error['test1'], 'test1 is required')
  113. ok( !error['test2'], 'test2 is not required')
  114. console.log('TEST 7')
  115. ticket.state_id = 3
  116. error = ticket.validate()
  117. ok( error['group_id'], 'group_id is required')
  118. ok( !error['title'], 'title is required')
  119. ok( !error['state_id'], 'state_id is required')
  120. ok( error['test1'], 'test1 is required')
  121. ok( !error['test2'], 'test2 is not required')
  122. console.log('TEST 8')
  123. ticket.state_id = 2
  124. error = ticket.validate()
  125. ok( error['group_id'], 'group_id is required')
  126. ok( !error['title'], 'title is required')
  127. ok( !error['state_id'], 'state_id is required')
  128. ok( error['test1'], 'test1 is required')
  129. ok( !error['test2'], 'test2 is not required')
  130. console.log('TEST 9')
  131. ticket.state_id = undefined
  132. error = ticket.validate({screen: 'some_screen'})
  133. ok( error['group_id'], 'group_id is required')
  134. ok( !error['title'], 'title is required')
  135. ok( error['state_id'], 'state_id is required')
  136. ok( !error['test1'], 'test1 is required')
  137. ok( !error['test2'], 'test2 is required')
  138. console.log('TEST 10')
  139. ticket.state_id = 2
  140. error = ticket.validate({screen: 'some_screen'})
  141. ok( error['group_id'], 'group_id is required')
  142. ok( !error['title'], 'title is required')
  143. ok( !error['state_id'], 'state_id is required')
  144. ok( !error['test1'], 'test1 is required')
  145. ok( !error['test2'], 'test2 is not required')
  146. console.log('TEST 11')
  147. ticket.state_id = 3
  148. error = ticket.validate({screen: 'some_screen'})
  149. ok( error['group_id'], 'group_id is required')
  150. ok( !error['title'], 'title is required')
  151. ok( !error['state_id'], 'state_id is required')
  152. ok( error['test1'], 'test1 is required')
  153. ok( error['test2'], 'test2 is required')
  154. console.log('TEST 12')
  155. ticket.state_id = 2
  156. error = ticket.validate()
  157. ok( error['group_id'], 'group_id is required')
  158. ok( !error['title'], 'title is required')
  159. ok( !error['state_id'], 'state_id is required')
  160. ok( error['test1'], 'test1 is required')
  161. ok( !error['test2'], 'test2 is not required')
  162. console.log('TEST 13')
  163. ticket.state_id = 3
  164. error = ticket.validate()
  165. ok( error['group_id'], 'group_id is required')
  166. ok( !error['title'], 'title is required')
  167. ok( !error['state_id'], 'state_id is required')
  168. ok( error['test1'], 'test1 is required')
  169. ok( !error['test2'], 'test2 is required')
  170. console.log('TEST 14')
  171. ticket.state_id = 2
  172. error = ticket.validate()
  173. ok( error['group_id'], 'group_id is required')
  174. ok( !error['title'], 'title is required')
  175. ok( !error['state_id'], 'state_id is required')
  176. ok( error['test1'], 'test1 is required')
  177. ok( !error['test2'], 'test2 is not required')
  178. });