ruby-trello 2.3.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (221) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -2
  3. data/lib/trello.rb +13 -7
  4. data/lib/trello/action.rb +27 -21
  5. data/lib/trello/attachment.rb +40 -27
  6. data/lib/trello/basic_data.rb +104 -9
  7. data/lib/trello/board.rb +88 -102
  8. data/lib/trello/card.rb +34 -235
  9. data/lib/trello/checklist.rb +17 -71
  10. data/lib/trello/comment.rb +32 -22
  11. data/lib/trello/cover_image.rb +20 -0
  12. data/lib/trello/custom_field.rb +31 -84
  13. data/lib/trello/custom_field_item.rb +36 -58
  14. data/lib/trello/custom_field_option.rb +40 -13
  15. data/lib/trello/item.rb +27 -16
  16. data/lib/trello/item_state.rb +7 -15
  17. data/lib/trello/json_utils.rb +1 -1
  18. data/lib/trello/label.rb +14 -101
  19. data/lib/trello/label_name.rb +22 -25
  20. data/lib/trello/list.rb +31 -44
  21. data/lib/trello/member.rb +77 -32
  22. data/lib/trello/notification.rb +27 -20
  23. data/lib/trello/organization.rb +53 -25
  24. data/lib/trello/plugin_datum.rb +11 -16
  25. data/lib/trello/schema.rb +31 -0
  26. data/lib/trello/schema/attribute/base.rb +79 -0
  27. data/lib/trello/schema/attribute/board_pref.rb +45 -0
  28. data/lib/trello/schema/attribute/custom_field_display.rb +45 -0
  29. data/lib/trello/schema/attribute/default.rb +45 -0
  30. data/lib/trello/schema/attribute_builder.rb +42 -0
  31. data/lib/trello/schema/attribute_registration.rb +47 -0
  32. data/lib/trello/schema/serializer/default.rb +17 -0
  33. data/lib/trello/schema/serializer/labels.rb +23 -0
  34. data/lib/trello/schema/serializer/time.rb +25 -0
  35. data/lib/trello/schema/serializer/webhooks.rb +25 -0
  36. data/lib/trello/token.rb +15 -12
  37. data/lib/trello/webhook.rb +18 -71
  38. data/spec/action_spec.rb +1 -2
  39. data/spec/board_spec.rb +43 -103
  40. data/spec/card_spec.rb +51 -50
  41. data/spec/cassettes/action_find_with_id_and_get_all_fields.yml +104 -0
  42. data/spec/cassettes/board_find_with_id_and_get_all_fields.yml +96 -0
  43. data/spec/cassettes/board_find_with_id_and_get_specific_fields.yml +96 -0
  44. data/spec/cassettes/can_add_a_member_to_a_board.yml +191 -0
  45. data/spec/cassettes/can_arvhice_all_cards_of_list.yml +397 -0
  46. data/spec/cassettes/can_get_actions_of_board.yml +188 -0
  47. data/spec/cassettes/can_get_actions_of_list.yml +202 -0
  48. data/spec/cassettes/can_get_actions_of_members.yml +199 -0
  49. data/spec/cassettes/can_get_actions_of_organization.yml +201 -0
  50. data/spec/cassettes/can_get_boards_of_custom_field.yml +198 -0
  51. data/spec/cassettes/can_get_boards_of_label.yml +197 -0
  52. data/spec/cassettes/can_get_boards_of_organization.yml +207 -0
  53. data/spec/cassettes/can_get_cards_of_board.yml +193 -0
  54. data/spec/cassettes/can_get_cards_of_list.yml +201 -0
  55. data/spec/cassettes/can_get_cards_of_member.yml +204 -0
  56. data/spec/cassettes/can_get_checklists_of_board.yml +187 -0
  57. data/spec/cassettes/can_get_custom_field_options_of_custom_field.yml +197 -0
  58. data/spec/cassettes/can_get_custom_fields_of_board.yml +187 -0
  59. data/spec/cassettes/can_get_label_names_of_board.yml +187 -0
  60. data/spec/cassettes/can_get_labels_of_board.yml +187 -0
  61. data/spec/cassettes/can_get_lists_of_board.yml +187 -0
  62. data/spec/cassettes/can_get_members_of_board.yml +188 -0
  63. data/spec/cassettes/can_get_members_of_organization.yml +200 -0
  64. data/spec/cassettes/can_get_notifications_of_member.yml +199 -0
  65. data/spec/cassettes/can_get_organization_of_board.yml +189 -0
  66. data/spec/cassettes/can_get_organizations_of_member.yml +203 -0
  67. data/spec/cassettes/can_get_plugin_data_of_board.yml +187 -0
  68. data/spec/cassettes/can_move_all_cards_to_another_list.yml +886 -0
  69. data/spec/cassettes/can_success_create_a_board.yml +98 -0
  70. data/spec/cassettes/can_success_create_a_board_with_full_parameters.yml +97 -0
  71. data/spec/cassettes/can_success_create_a_board_without_clone_from_other.yml +98 -0
  72. data/spec/cassettes/can_success_create_a_card_when_due_is_datetime.yml +98 -0
  73. data/spec/cassettes/can_success_create_a_card_when_due_is_time.yml +98 -0
  74. data/spec/cassettes/can_success_create_a_checklist.yml +102 -0
  75. data/spec/cassettes/can_success_create_a_custom_field.yml +102 -0
  76. data/spec/cassettes/can_success_create_a_custom_field_option.yml +102 -0
  77. data/spec/cassettes/can_success_create_a_label.yml +102 -0
  78. data/spec/cassettes/can_success_create_a_list.yml +102 -0
  79. data/spec/cassettes/can_success_create_a_list_with_full_parameters.yml +102 -0
  80. data/spec/cassettes/can_success_create_a_organization.yml +104 -0
  81. data/spec/cassettes/can_success_create_a_webhook.yml +102 -0
  82. data/spec/cassettes/can_success_delete_a_custom_field_option.yml +389 -0
  83. data/spec/cassettes/can_success_delete_checklist.yml +284 -0
  84. data/spec/cassettes/can_success_get_card_of_board_by_card_id.yml +188 -0
  85. data/spec/cassettes/can_success_remove_member_from_board.yml +186 -0
  86. data/spec/cassettes/can_success_return_all_boards_of_current_user.yml +195 -0
  87. data/spec/cassettes/can_success_upate_a_board.yml +191 -0
  88. data/spec/cassettes/can_success_upate_a_list.yml +296 -0
  89. data/spec/cassettes/can_success_update_bong_a_board.yml +39 -39
  90. data/spec/cassettes/can_success_update_bong_a_board_with_specific_fields.yml +284 -0
  91. data/spec/cassettes/can_success_update_bong_a_checklist_with_specific_fields.yml +296 -0
  92. data/spec/cassettes/can_success_update_bong_a_custom_field.yml +200 -0
  93. data/spec/cassettes/can_success_update_bong_a_label.yml +200 -0
  94. data/spec/cassettes/can_success_update_bong_a_list.yml +199 -0
  95. data/spec/cassettes/can_success_update_bong_a_list_with_specific_fields.yml +296 -0
  96. data/spec/cassettes/can_success_update_bong_a_organization.yml +203 -0
  97. data/spec/cassettes/can_success_update_bong_a_webhook.yml +296 -0
  98. data/spec/cassettes/checklist_can_add_an_item.yml +296 -0
  99. data/spec/cassettes/checklist_can_update_the_item_state.yml +296 -0
  100. data/spec/cassettes/checklist_find_with_id_and_get_all_fields.yml +100 -0
  101. data/spec/cassettes/custom_field_find_with_id_and_get_all_fields.yml +100 -0
  102. data/spec/cassettes/custom_field_find_with_id_and_get_specific_fields.yml +100 -0
  103. data/spec/cassettes/custom_field_item_save_1.yml +1 -1
  104. data/spec/cassettes/custom_field_item_save_2.yml +1 -1
  105. data/spec/cassettes/custom_field_option_find_with_id.yml +100 -0
  106. data/spec/cassettes/get_board_of_list.yml +197 -0
  107. data/spec/cassettes/get_boards_of_member.yml +207 -0
  108. data/spec/cassettes/label_delete.yml +285 -0
  109. data/spec/cassettes/label_find_with_id.yml +100 -0
  110. data/spec/cassettes/list_find_with_id_and_get_all_fields.yml +100 -0
  111. data/spec/cassettes/list_find_with_id_and_get_specific_fields.yml +100 -0
  112. data/spec/cassettes/member_find_with_id_and_get_all_fields.yml +101 -0
  113. data/spec/cassettes/member_find_with_id_and_get_specific_fields.yml +100 -0
  114. data/spec/cassettes/notification_find_with_id.yml +103 -0
  115. data/spec/cassettes/organization_find_with_id_and_get_all_fields.yml +102 -0
  116. data/spec/cassettes/organization_find_with_id_and_get_specific_fields.yml +100 -0
  117. data/spec/cassettes/token_find_with_token_string.yml +100 -0
  118. data/spec/cassettes/webhook_delete.yml +286 -0
  119. data/spec/cassettes/webhook_find_with_id.yml +100 -0
  120. data/spec/checklist_spec.rb +27 -43
  121. data/spec/custom_field_item_spec.rb +2 -2
  122. data/spec/custom_field_option_spec.rb +2 -2
  123. data/spec/custom_field_spec.rb +25 -13
  124. data/spec/integration/action/find_spec.rb +23 -0
  125. data/spec/integration/basic_data/many_spec.rb +4 -0
  126. data/spec/integration/basic_data/schema_spec.rb +156 -0
  127. data/spec/integration/board/add_member_spec.rb +21 -0
  128. data/spec/integration/board/all_spec.rb +20 -0
  129. data/spec/integration/board/associations/actions_spec.rb +18 -0
  130. data/spec/integration/board/associations/cards_spec.rb +18 -0
  131. data/spec/integration/board/associations/checklists_spec.rb +18 -0
  132. data/spec/integration/board/associations/custom_fields_spec.rb +18 -0
  133. data/spec/integration/board/associations/label_names_spec.rb +17 -0
  134. data/spec/integration/board/associations/labels_spec.rb +18 -0
  135. data/spec/integration/board/associations/lists_spec.rb +18 -0
  136. data/spec/integration/board/associations/members_spec.rb +18 -0
  137. data/spec/integration/board/associations/organization_spec.rb +19 -0
  138. data/spec/integration/board/associations/plugin_data_spec.rb +18 -0
  139. data/spec/integration/board/create_spec.rb +95 -0
  140. data/spec/integration/board/find_card_spec.rb +18 -0
  141. data/spec/integration/board/find_spec.rb +42 -0
  142. data/spec/integration/board/remove_member_spec.rb +21 -0
  143. data/spec/integration/board/save_spec.rb +37 -0
  144. data/spec/integration/board/update!_spec.rb +33 -2
  145. data/spec/integration/card/associations/plugin_data_spec.rb +1 -1
  146. data/spec/integration/card/create_spec.rb +36 -2
  147. data/spec/integration/card/find_spec.rb +1 -1
  148. data/spec/integration/card/save_spec.rb +2 -2
  149. data/spec/integration/checklist/add_item_spec.rb +20 -0
  150. data/spec/integration/checklist/create_spec.rb +23 -0
  151. data/spec/integration/checklist/delete_spec.rb +17 -0
  152. data/spec/integration/checklist/find_spec.rb +22 -0
  153. data/spec/integration/checklist/update!_spec.rb +21 -0
  154. data/spec/integration/checklist/update_item_state_spec.rb +20 -0
  155. data/spec/integration/custom_field/association/board_spec.rb +18 -0
  156. data/spec/integration/custom_field/association/custom_field_options_spec.rb +18 -0
  157. data/spec/integration/custom_field/create_spec.rb +29 -0
  158. data/spec/integration/custom_field/find_spec.rb +41 -0
  159. data/spec/integration/custom_field/update!_spec.rb +25 -0
  160. data/spec/integration/custom_field_option/create_spec.rb +23 -0
  161. data/spec/integration/custom_field_option/delete_spec.rb +19 -0
  162. data/spec/integration/custom_field_option/find_spec.rb +21 -0
  163. data/spec/integration/label/association/board_spec.rb +18 -0
  164. data/spec/integration/label/create_spec.rb +23 -0
  165. data/spec/integration/label/delete_spec.rb +21 -0
  166. data/spec/integration/label/find_spec.rb +20 -0
  167. data/spec/integration/label/update!_spec.rb +25 -0
  168. data/spec/integration/list/archive_all_cards_spec.rb +20 -0
  169. data/spec/integration/list/associations/actions_spec.rb +18 -0
  170. data/spec/integration/list/associations/board_spec.rb +18 -0
  171. data/spec/integration/list/associations/cards_spec.rb +18 -0
  172. data/spec/integration/list/create_spec.rb +44 -0
  173. data/spec/integration/list/find_spec.rb +37 -0
  174. data/spec/integration/list/move_all_cards_spec.rb +31 -0
  175. data/spec/integration/list/save_spec.rb +40 -0
  176. data/spec/integration/list/update!_spec.rb +43 -0
  177. data/spec/integration/member/associations/actions_spec.rb +17 -0
  178. data/spec/integration/member/associations/boards_spec.rb +18 -0
  179. data/spec/integration/member/associations/cards_spec.rb +18 -0
  180. data/spec/integration/member/associations/notifications_spec.rb +18 -0
  181. data/spec/integration/member/associations/organizations_spec.rb +18 -0
  182. data/spec/integration/member/find_spec.rb +39 -0
  183. data/spec/integration/member/update!_spec.rb +18 -0
  184. data/spec/integration/notification/find_spec.rb +27 -0
  185. data/spec/integration/organization/associations/actions_spec.rb +18 -0
  186. data/spec/integration/organization/associations/boards_spec.rb +18 -0
  187. data/spec/integration/organization/associations/members_spec.rb +18 -0
  188. data/spec/integration/organization/create_spec.rb +23 -0
  189. data/spec/integration/organization/find_spec.rb +37 -0
  190. data/spec/integration/organization/update!_spec.rb +28 -0
  191. data/spec/integration/token/find_spec.rb +24 -0
  192. data/spec/integration/webhook/create_spec.rb +27 -0
  193. data/spec/integration/webhook/delete_spec.rb +21 -0
  194. data/spec/integration/webhook/find_spec.rb +22 -0
  195. data/spec/integration/webhook/update!_spec.rb +24 -0
  196. data/spec/item_spec.rb +2 -2
  197. data/spec/label_spec.rb +31 -33
  198. data/spec/list_spec.rb +32 -14
  199. data/spec/notification_spec.rb +3 -3
  200. data/spec/organization_spec.rb +6 -5
  201. data/spec/spec_helper.rb +22 -14
  202. data/spec/token_spec.rb +10 -11
  203. data/spec/unit/trello/basic_data_spec.rb +67 -8
  204. data/spec/unit/trello/board/new_spec.rb +370 -0
  205. data/spec/unit/trello/board/save_spec.rb +49 -0
  206. data/spec/unit/trello/board/update_fields_spec.rb +129 -0
  207. data/spec/unit/trello/board/update_spec.rb +197 -0
  208. data/spec/unit/trello/member/new_spec.rb +62 -0
  209. data/spec/unit/trello/member/update_fields_spec.rb +80 -0
  210. data/spec/unit/trello/schema/attribute/base_spec.rb +349 -0
  211. data/spec/unit/trello/schema/attribute/board_pref_spec.rb +208 -0
  212. data/spec/unit/trello/schema/attribute/default_spec.rb +236 -0
  213. data/spec/unit/trello/schema/attribute_builder_spec.rb +55 -0
  214. data/spec/unit/trello/schema/attribute_registration_spec.rb +59 -0
  215. data/spec/unit/trello/schema/serializer/default_spec.rb +19 -0
  216. data/spec/unit/trello/schema/serializer/time_spec.rb +39 -0
  217. data/spec/unit/trello/schema_spec.rb +25 -0
  218. data/spec/webhook_spec.rb +23 -7
  219. metadata +422 -102
  220. data/lib/trello/register_attributes.rb +0 -54
  221. data/spec/integration/basic_data/register_attributes_spec.rb +0 -75
@@ -5,19 +5,24 @@ RSpec.describe 'Trell::Board.update!' do
5
5
 
6
6
  before { setup_trello }
7
7
 
8
- it 'can update! a card' do
8
+ it 'can update! a card with all fields' do
9
9
  VCR.use_cassette('can_success_update_bong_a_board') do
10
10
  board = Trello::Board.find('5e93ba403f1ab3603ba81a09')
11
11
 
12
12
  expect(board.name).to eq('IT 1')
13
13
  expect(board.description).to eq('')
14
- expect(board.closed).to eq(true)
15
14
  expect(board.organization_id).to eq('5e93ba154634282b6df23bcc')
16
15
 
17
16
  board.name = 'IT 1 - Changed'
18
17
  board.description = 'This is a test board called IT 1'
19
18
  board.closed = false
20
19
  board.organization_id = '5eb427016b5a464a74803f1c'
20
+ board.visibility_level = 'org'
21
+ board.enable_self_join = false
22
+ board.enable_card_covers = false
23
+ board.voting_permission_level = 'org'
24
+ board.comment_permission_level = 'org'
25
+ board.background_color = 'green'
21
26
 
22
27
  board.update!
23
28
 
@@ -26,6 +31,32 @@ RSpec.describe 'Trell::Board.update!' do
26
31
  expect(board.description).to eq('This is a test board called IT 1')
27
32
  expect(board.closed).to eq(false)
28
33
  expect(board.organization_id).to eq('5eb427016b5a464a74803f1c')
34
+ expect(board.visibility_level).to eq('org')
35
+ expect(board.enable_self_join).to eq(false)
36
+ expect(board.enable_card_covers).to eq(false)
37
+ expect(board.voting_permission_level).to eq('org')
38
+ expect(board.comment_permission_level).to eq('org')
39
+ expect(board.background_color).to eq('green')
40
+ end
41
+ end
42
+
43
+ it 'can update! a card with specific fields' do
44
+ VCR.use_cassette('can_success_update_bong_a_board_with_specific_fields') do
45
+ board = Trello::Board.find('5e93ba403f1ab3603ba81a09')
46
+
47
+ expect(board.name).to eq('IT 1')
48
+ expect(board.description).to eq('This is a test board called IT 1')
49
+ expect(board.comment_permission_level).to eq('org')
50
+
51
+ board.name = 'IT 1 - Changed'
52
+ board.comment_permission_level = 'members'
53
+
54
+ board.update!
55
+
56
+ board = Trello::Board.find('5e93ba403f1ab3603ba81a09')
57
+ expect(board.name).to eq('IT 1 - Changed')
58
+ expect(board.description).to eq('This is a test board called IT 1')
59
+ expect(board.comment_permission_level).to eq('members')
29
60
  end
30
61
  end
31
62
  end
@@ -11,7 +11,7 @@ RSpec.describe 'Trello::Card#plugin_data' do
11
11
  plugin_data = card.plugin_data
12
12
  expect(plugin_data.count).to be > 0
13
13
  expect(plugin_data[0]).to be_a(Trello::PluginDatum)
14
- expect(plugin_data[0].idModel).to eq(card.id)
14
+ expect(plugin_data[0].model_id).to eq(card.id)
15
15
  end
16
16
  end
17
17
 
@@ -29,8 +29,8 @@ RSpec.describe 'Trell::Card.create' do
29
29
  expect(card.due).to eq(Time.new(2020, 12, 22, 1, 59, 0, '+00:00'))
30
30
  expect(card.due_complete).to eq(false)
31
31
  expect(card.pos).not_to be_nil
32
- expect(card.source_card_id).to eq('5e93ba665c58c44a46cb2ef9')
33
- expect(card.source_card_properties).to eq('comments')
32
+ # expect(card.source_card_id).to eq('5e93ba665c58c44a46cb2ef9')
33
+ # expect(card.source_card_properties).to eq('comments')
34
34
 
35
35
  expect(card.id).not_to be_nil
36
36
  expect(card.short_id).not_to be_nil
@@ -46,5 +46,39 @@ RSpec.describe 'Trell::Card.create' do
46
46
  end
47
47
  end
48
48
 
49
+ it 'can success create card when "due" is a Time' do
50
+ VCR.use_cassette('can_success_create_a_card_when_due_is_time') do
51
+ card = Trello::Card.create(
52
+ name: 'Test Trello::Card.create 2',
53
+ list_id: '5e93bac014d40e501ee46b8d',
54
+ due: Time.new(2020, 12, 22, 1, 59, 0, '+00:00'),
55
+ due_complete: false
56
+ )
57
+ expect(card).to be_a(Trello::Card)
58
+
59
+ expect(card.id).not_to be_nil
60
+ expect(card.name).to eq('Test Trello::Card.create 2')
61
+ expect(card.list_id).to eq('5e93bac014d40e501ee46b8d')
62
+ expect(card.due).to eq(Time.new(2020, 12, 22, 1, 59, 0, '+00:00'))
63
+ end
64
+ end
65
+
66
+ it 'can success create card when "due" is a DateTime' do
67
+ VCR.use_cassette('can_success_create_a_card_when_due_is_datetime') do
68
+ card = Trello::Card.create(
69
+ name: 'Test Trello::Card.create 3',
70
+ list_id: '5e93bac014d40e501ee46b8d',
71
+ due: DateTime.new(2020, 12, 22, 1, 59, 0, '+00:00'),
72
+ due_complete: false
73
+ )
74
+ expect(card).to be_a(Trello::Card)
75
+
76
+ expect(card.id).not_to be_nil
77
+ expect(card.name).to eq('Test Trello::Card.create 3')
78
+ expect(card.list_id).to eq('5e93bac014d40e501ee46b8d')
79
+ expect(card.due).to eq(Time.new(2020, 12, 22, 1, 59, 0, '+00:00'))
80
+ end
81
+ end
82
+
49
83
  end
50
84
 
@@ -49,7 +49,6 @@ RSpec.describe 'Trello::Card#find' do
49
49
  expect(card.url).to be_nil
50
50
  expect(card.short_url).to be_nil
51
51
  expect(card.due).to be_nil
52
- expect(card.due_complete).to eq(false)
53
52
  expect(card.closed).to be_nil
54
53
  expect(card.board_id).to be_nil
55
54
  expect(card.member_ids).to be_nil
@@ -60,6 +59,7 @@ RSpec.describe 'Trello::Card#find' do
60
59
  expect(card.cover_image_id).to be_nil # only exist when the care use a custom cover image
61
60
  expect(card.badges).to be_nil
62
61
  expect(card.source_card_id).to be_nil # it's params only work for create card
62
+ expect(card.due_complete).to be_nil
63
63
  expect(card.source_card_properties).to be_nil # it's params only work for creae card
64
64
  end
65
65
  end
@@ -30,8 +30,6 @@ RSpec.describe 'Trell::Card.create' do
30
30
  expect(card.due).to eq(Time.new(2020, 12, 22, 1, 59, 0, '+00:00'))
31
31
  expect(card.due_complete).to eq(false)
32
32
  expect(card.pos).not_to be_nil
33
- expect(card.source_card_id).to eq('5e93ba665c58c44a46cb2ef9')
34
- expect(card.source_card_properties).to eq('comments')
35
33
 
36
34
  expect(card.id).not_to be_nil
37
35
  expect(card.short_id).not_to be_nil
@@ -44,6 +42,8 @@ RSpec.describe 'Trell::Card.create' do
44
42
  expect(card.badges).not_to be_nil
45
43
  expect(card.card_members).to be_nil # default not return members
46
44
  expect(card.cover_image_id).to be_nil # only exist when the care use a custom cover image
45
+ expect(card.source_card_id).to be_nil
46
+ expect(card.source_card_properties).to be_nil
47
47
  end
48
48
  end
49
49
 
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Checklist.add_item' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'checklist can add an item' do
9
+ VCR.use_cassette('checklist_can_add_an_item') do
10
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
11
+ expect(checklist.check_items.count).to eq(0)
12
+
13
+ checklist.add_item('A')
14
+
15
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
16
+ expect(checklist.check_items.count).to eq(1)
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Checklist.create' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success create the checklist partial parameters' do
9
+ VCR.use_cassette('can_success_create_a_checklist') do
10
+ checklist = Trello::Checklist.create(
11
+ name: 'C2',
12
+ card_id: '5e94fd9443f25a7263b165d0'
13
+ )
14
+
15
+ expect(checklist).to be_a(Trello::Checklist)
16
+ expect(checklist.name).to eq('C2')
17
+ expect(checklist.id).not_to be_nil
18
+ expect(checklist.position).not_to be_nil
19
+ expect(checklist.card_id).to eq('5e94fd9443f25a7263b165d0')
20
+ end
21
+ end
22
+
23
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::Checklist.delete' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can delete an checklist' do
9
+ VCR.use_cassette('can_success_delete_checklist') do
10
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
11
+
12
+ checklist.delete
13
+
14
+ expect{ Trello::Checklist.find('5f527c51adecdd18331874d5') }.to raise_error('The requested resource was not found.')
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Checklist#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id and get all fields' do
9
+ VCR.use_cassette('checklist_find_with_id_and_get_all_fields') do
10
+ checklist = Trello::Checklist.find('5f526c25f22acb4769d521ef')
11
+
12
+ expect(checklist).to be_a(Trello::Checklist)
13
+ expect(checklist.id).to eq('5f526c25f22acb4769d521ef')
14
+ expect(checklist.name).not_to be_nil
15
+ expect(checklist.position).not_to be_nil
16
+ expect(checklist.check_items).not_to be_nil
17
+ expect(checklist.board_id).not_to be_nil
18
+ expect(checklist.card_id).not_to be_nil
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::Checklist.update!' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can update! a checklist with specific fields' do
9
+ VCR.use_cassette('can_success_update_bong_a_checklist_with_specific_fields') do
10
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
11
+ expect(checklist.name).to eq('C2')
12
+
13
+ checklist.name = 'C2 - Changed'
14
+
15
+ checklist.update!
16
+
17
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
18
+ expect(checklist.name).to eq('C2 - Changed')
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Checklist.update_item_state' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'checklist can update and item state' do
9
+ VCR.use_cassette('checklist_can_update_the_item_state') do
10
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
11
+ expect(checklist.check_items.first['state']).to eq('incomplete')
12
+
13
+ checklist.update_item_state('5f527dd00ac0cb4a43d85be7', 'complete')
14
+
15
+ checklist = Trello::Checklist.find('5f527c51adecdd18331874d5')
16
+ expect(checklist.check_items.first['state']).to eq('complete')
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomField#board' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get board' do
9
+ VCR.use_cassette('can_get_boards_of_custom_field') do
10
+ custom_field = Trello::CustomField.find('5f60edcbe0610f8811951cae')
11
+ board = custom_field.board
12
+
13
+ expect(board).to be_a(Trello::Board)
14
+ expect(board.id).to eq(custom_field.model_id)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomField#custom_field_options' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get custom_field_options' do
9
+ VCR.use_cassette('can_get_custom_field_options_of_custom_field') do
10
+ custom_field = Trello::CustomField.find('5f60f07958388d26dc063c2d')
11
+ custom_field_options = custom_field.custom_field_options
12
+
13
+ expect(custom_field_options).to be_a(Array)
14
+ expect(custom_field_options[0]).to be_a(Trello::CustomFieldOption)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomField.create' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success create the custom_field' do
9
+ VCR.use_cassette('can_success_create_a_custom_field') do
10
+ custom_field = Trello::CustomField.create(
11
+ name: 'Started',
12
+ model_id: '5e93ba98614ac22d22f085c4',
13
+ model_type: 'board',
14
+ enable_display_on_card: true,
15
+ position: 'bottom',
16
+ type: 'checkbox'
17
+ )
18
+ expect(custom_field).to be_a(Trello::CustomField)
19
+
20
+ expect(custom_field.id).not_to be_nil
21
+ expect(custom_field.name).to eq('Started')
22
+ expect(custom_field.model_id).to eq('5e93ba98614ac22d22f085c4')
23
+ expect(custom_field.model_type).to eq('board')
24
+ expect(custom_field.enable_display_on_card).to eq(true)
25
+ expect(custom_field.position).not_to be_nil
26
+ expect(custom_field.type).to eq('checkbox')
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,41 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomField#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id and get all fields' do
9
+ VCR.use_cassette('custom_field_find_with_id_and_get_all_fields') do
10
+ custom_field = Trello::CustomField.find('5f60e443555b8432d959ae94')
11
+ expect(custom_field).to be_a(Trello::CustomField)
12
+
13
+ expect(custom_field.id).not_to be_nil
14
+ expect(custom_field.name).not_to be_nil
15
+ expect(custom_field.model_id).not_to be_nil
16
+ expect(custom_field.model_type).not_to be_nil
17
+ expect(custom_field.field_group).not_to be_nil
18
+ expect(custom_field.enable_display_on_card).not_to be_nil
19
+ expect(custom_field.position).not_to be_nil
20
+ expect(custom_field.type).not_to be_nil
21
+ end
22
+ end
23
+
24
+ it 'find with id and get specific fields' do
25
+ VCR.use_cassette('custom_field_find_with_id_and_get_specific_fields') do
26
+ custom_field = Trello::CustomField.find('5f60e443555b8432d959ae94', fields: 'name,type')
27
+ expect(custom_field).to be_a(Trello::CustomField)
28
+
29
+ expect(custom_field.id).not_to be_nil
30
+ expect(custom_field.name).not_to be_nil
31
+ expect(custom_field.type).not_to be_nil
32
+
33
+ expect(custom_field.model_id).to be_nil
34
+ expect(custom_field.model_type).to be_nil
35
+ expect(custom_field.field_group).to be_nil
36
+ expect(custom_field.enable_display_on_card).to be_nil
37
+ expect(custom_field.position).to be_nil
38
+ end
39
+ end
40
+
41
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::CustomField.update!' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can update! a custom_field' do
9
+ VCR.use_cassette('can_success_update_bong_a_custom_field') do
10
+ custom_field = Trello::CustomField.find('5f60edcbe0610f8811951cae')
11
+
12
+ expect(custom_field.name).to eq('Started')
13
+ expect(custom_field.enable_display_on_card).to eq(true)
14
+
15
+ custom_field.name = 'Started - Change'
16
+ custom_field.enable_display_on_card = false
17
+
18
+ custom_field.update!
19
+
20
+ expect(custom_field.name).to eq('Started - Change')
21
+ expect(custom_field.enable_display_on_card).to eq(false)
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomFieldOption.create' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success create the custom_field_option' do
9
+ VCR.use_cassette('can_success_create_a_custom_field_option') do
10
+ custom_field_option = Trello::CustomFieldOption.create(
11
+ custom_field_id: '5fa7589441b04c2cf1fc773a',
12
+ value: { 'text' => 'failed' }
13
+ )
14
+ expect(custom_field_option).to be_a(Trello::CustomFieldOption)
15
+
16
+ expect(custom_field_option.id).not_to be_nil
17
+ expect(custom_field_option.custom_field_id).to eq('5fa7589441b04c2cf1fc773a')
18
+ expect(custom_field_option.value).to eq({'text' => 'failed'})
19
+ expect(custom_field_option.color).not_to be_nil
20
+ expect(custom_field_option.position).not_to be_nil
21
+ end
22
+ end
23
+ end