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
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Member#boards' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get boards' do
9
+ VCR.use_cassette('get_boards_of_member') do
10
+ member = Trello::Member.find('hoppertest')
11
+ boards = member.boards
12
+
13
+ expect(boards).to be_a(Array)
14
+ expect(boards[0]).to be_a(Trello::Board)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Member#cards' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get cards' do
9
+ VCR.use_cassette('can_get_cards_of_member') do
10
+ member = Trello::Member.find('hoppertest')
11
+ cards = member.cards
12
+
13
+ expect(cards).to be_a(Array)
14
+ expect(cards[0]).to be_a(Trello::Card)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Member#notifications' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get notifications' do
9
+ VCR.use_cassette('can_get_notifications_of_member') do
10
+ member = Trello::Member.find('hoppertest')
11
+ notifications = member.notifications
12
+
13
+ expect(notifications).to be_a(Array)
14
+ expect(notifications[0]).to be_a(Trello::Notification)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Member#organizations' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get organizations' do
9
+ VCR.use_cassette('can_get_organizations_of_member') do
10
+ member = Trello::Member.find('hoppertest')
11
+ organizations = member.organizations
12
+
13
+ expect(organizations).to be_a(Array)
14
+ expect(organizations[0]).to be_a(Trello::Organization)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,39 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Member#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('member_find_with_id_and_get_all_fields') do
10
+ member = Trello::Member.find('hoppertest')
11
+ expect(member).to be_a(Trello::Member)
12
+ expect(member.id).not_to be_nil
13
+ expect(member.username).to eq('hoppertest')
14
+ expect(member.email).not_to be_nil
15
+ expect(member.full_name).not_to be_nil
16
+ expect(member.initials).not_to be_nil
17
+ # expect(member.avatar_id).not_to be_nil
18
+ expect(member.bio).not_to be_nil
19
+ expect(member.url).not_to be_nil
20
+ end
21
+ end
22
+
23
+ it 'find with id and get specific fields' do
24
+ VCR.use_cassette('member_find_with_id_and_get_specific_fields') do
25
+ member = Trello::Member.find('hoppertest', fields: 'username,url')
26
+ expect(member).to be_a(Trello::Member)
27
+ expect(member.id).not_to be_nil
28
+ expect(member.username).to eq('hoppertest')
29
+ expect(member.url).not_to be_nil
30
+
31
+ expect(member.email).to be_nil
32
+ expect(member.full_name).to be_nil
33
+ expect(member.initials).to be_nil
34
+ # expect(member.avatar_id).not_to be_nil
35
+ expect(member.bio).to be_nil
36
+ end
37
+ end
38
+
39
+ end
@@ -0,0 +1,18 @@
1
+ # require 'spec_helper'
2
+
3
+ # RSpec.describe 'Trell::Member.update!' do
4
+ # include IntegrationHelpers
5
+
6
+ # before { setup_trello }
7
+
8
+ # it 'can update! a member' do
9
+ # VCR.use_cassette('can_success_update_bong_a_member') do
10
+ # member = Trello::Member.find('hoppertest')
11
+ # member.bio = 'test'
12
+ # member.update!
13
+
14
+ # member = Trello::Member.find('hoppertest')
15
+ # expect(member.bio).to eq('test')
16
+ # end
17
+ # end
18
+ # end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Notification#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with notification string' do
9
+ VCR.use_cassette('notification_find_with_id') do
10
+ notification = Trello::Notification.find('5fa890adbf71bd13269ffdc5')
11
+ expect(notification).to be_a(Trello::Notification)
12
+
13
+ expect(notification.id).not_to be_nil
14
+ expect(notification.type).not_to be_nil
15
+ expect(notification.date).not_to be_nil
16
+ expect(notification.data).not_to be_nil
17
+ # expect(notification.creator_app).not_to be_nil
18
+ expect(notification.creator_id).not_to be_nil
19
+ expect(notification.action_id).not_to be_nil
20
+ expect(notification.is_reactable).not_to be_nil
21
+ expect(notification.unread).not_to be_nil
22
+ # expect(notification.read_at).not_to be_nil
23
+ expect(notification.reactions).not_to be_nil
24
+ end
25
+ end
26
+
27
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Organization#actions' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get actions' do
9
+ VCR.use_cassette('can_get_actions_of_organization') do
10
+ organization = Trello::Organization.find('5e93ba154634282b6df23bcc')
11
+ actions = organization.actions
12
+
13
+ expect(actions).to be_a(Array)
14
+ expect(actions[0]).to be_a(Trello::Action)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Organization#boards' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get boards' do
9
+ VCR.use_cassette('can_get_boards_of_organization') do
10
+ organization = Trello::Organization.find('5e93ba154634282b6df23bcc')
11
+ boards = organization.boards
12
+
13
+ expect(boards).to be_a(Array)
14
+ expect(boards[0]).to be_a(Trello::Board)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Organization#members' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get members' do
9
+ VCR.use_cassette('can_get_members_of_organization') do
10
+ organization = Trello::Organization.find('5e93ba154634282b6df23bcc')
11
+ members = organization.members
12
+
13
+ expect(members).to be_a(Array)
14
+ expect(members[0]).to be_a(Trello::Member)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Organization.create' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success create the organization' do
9
+ VCR.use_cassette('can_success_create_a_organization') do
10
+ organization = Trello::Organization.create(
11
+ name: 'integrationtest98',
12
+ display_name: 'Integration Test 98',
13
+ description: 'This is a team for doing integration tests.'
14
+ )
15
+ expect(organization).to be_a(Trello::Organization)
16
+
17
+ expect(organization.id).not_to be_nil
18
+ expect(organization.name).to eq('integrationtest98')
19
+ expect(organization.display_name).to eq('Integration Test 98')
20
+ expect(organization.description).to eq('This is a team for doing integration tests.')
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Organization#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('organization_find_with_id_and_get_all_fields') do
10
+ organization = Trello::Organization.find('5e93ba154634282b6df23bcc')
11
+ expect(organization).to be_a(Trello::Organization)
12
+
13
+ expect(organization.id).not_to be_nil
14
+ expect(organization.name).not_to be_nil
15
+ expect(organization.display_name).not_to be_nil
16
+ expect(organization.team_type).not_to be_nil
17
+ expect(organization.description).not_to be_nil
18
+ expect(organization.url).not_to be_nil
19
+ end
20
+ end
21
+
22
+ it 'find with id and get specific fields' do
23
+ VCR.use_cassette('organization_find_with_id_and_get_specific_fields') do
24
+ organization = Trello::Organization.find('5e93ba154634282b6df23bcc', fields: 'name,url')
25
+ expect(organization).to be_a(Trello::Organization)
26
+
27
+ expect(organization.id).not_to be_nil
28
+ expect(organization.name).not_to be_nil
29
+ expect(organization.url).not_to be_nil
30
+
31
+ expect(organization.display_name).to be_nil
32
+ expect(organization.team_type).to be_nil
33
+ expect(organization.description).to be_nil
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,28 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::Organization.update!' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can update! a organization' do
9
+ VCR.use_cassette('can_success_update_bong_a_organization') do
10
+ organization = Trello::Organization.find('5f60d9f72c17b23dbb2d9d79')
11
+
12
+ expect(organization.name).to eq('integrationtest98')
13
+ expect(organization.display_name).to eq('Integration Test 98')
14
+ expect(organization.description).to eq('This is a team for doing integration tests.')
15
+
16
+ organization.name = 'integrationtest99'
17
+ organization.display_name = 'Integration Test 99'
18
+ organization.description = 'This is a team for doing integration tests for 99'
19
+
20
+ organization.update!
21
+
22
+ expect(organization.name).to eq('integrationtest99')
23
+ expect(organization.display_name).to eq('Integration Test 99')
24
+ expect(organization.description).to eq('This is a team for doing integration tests for 99')
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Token#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with token string' do
9
+ VCR.use_cassette('token_find_with_token_string') do
10
+ token = Trello::Token.find('MEMBER_TOKEN')
11
+ expect(token).to be_a(Trello::Token)
12
+
13
+ expect(token.id).not_to be_nil
14
+ expect(token.identifier).not_to be_nil
15
+ expect(token.member_id).not_to be_nil
16
+ expect(token.created_at).not_to be_nil
17
+ # expect(token.expires_at).not_to be_nil
18
+ expect(token.permissions).not_to be_nil
19
+ expect(token.webhooks).not_to be_nil
20
+ expect(token.webhooks[0]).to be_a(Trello::Webhook)
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,27 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Webhook.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_webhook') do
10
+ webhook = Trello::Webhook.create(
11
+ description: 'test',
12
+ model_id: '5fa759f1564c6e5bb803c61e',
13
+ callback_url: 'https://example.com/webhook/trello_callbacks',
14
+ active: true
15
+ )
16
+ expect(webhook).to be_a(Trello::Webhook)
17
+
18
+ expect(webhook.id).not_to be_nil
19
+ expect(webhook.description).to eq('test')
20
+ expect(webhook.model_id).to eq('5fa759f1564c6e5bb803c61e')
21
+ expect(webhook.callback_url).to eq('https://example.com/webhook/trello_callbacks')
22
+ expect(webhook.active).to eq(true)
23
+ expect(webhook.consecutive_failures).to eq(0)
24
+ expect(webhook.first_consecutive_fail_date).to be_nil
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Webhook#delete' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id' do
9
+ VCR.use_cassette('webhook_delete') do
10
+ webhook = Trello::Webhook.find('5fa8a1e0009b2a6a669e6efa')
11
+ expect(webhook).to be_a(Trello::Webhook)
12
+
13
+ webhook.delete
14
+
15
+ expect {
16
+ Trello::Webhook.find('5fa8a1e0009b2a6a669e6efa')
17
+ }.to raise_error Trello::Error, 'The requested resource was not found.'
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Webhook#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id' do
9
+ VCR.use_cassette('webhook_find_with_id') do
10
+ webhook = Trello::Webhook.find('5fa8a1e0009b2a6a669e6efa')
11
+ expect(webhook).to be_a(Trello::Webhook)
12
+
13
+ expect(webhook.id).not_to be_nil
14
+ expect(webhook.description).not_to be_nil
15
+ expect(webhook.model_id).not_to be_nil
16
+ expect(webhook.callback_url).not_to be_nil
17
+ expect(webhook.active).not_to be_nil
18
+ expect(webhook.consecutive_failures).not_to be_nil
19
+ end
20
+ end
21
+
22
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::Webhook.update!' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can update! a webhook' do
9
+ VCR.use_cassette('can_success_update_bong_a_webhook') do
10
+ webhook = Trello::Webhook.find('5fa8a1e0009b2a6a669e6efa')
11
+
12
+ expect(webhook.description).to eq('test')
13
+
14
+ webhook.description = 'Test - Changed'
15
+
16
+ webhook.update!
17
+
18
+ expect(webhook.description).to eq('Test - Changed')
19
+ webhook = Trello::Webhook.find('5fa8a1e0009b2a6a669e6efa')
20
+ expect(webhook.description).to eq('Test - Changed')
21
+ end
22
+ end
23
+
24
+ end
@@ -31,7 +31,7 @@ module Trello
31
31
  end
32
32
 
33
33
  it 'knows its pos' do
34
- expect(item.pos).to eq details['pos']
34
+ expect(item.position).to eq details['pos']
35
35
  end
36
36
 
37
37
  describe '#complete?' do
@@ -59,7 +59,7 @@ module Trello
59
59
  'name' => 'name',
60
60
  'type' => 'type',
61
61
  'state' => 'state',
62
- 'pos' => 'pos'
62
+ 'pos' => 'position'
63
63
  }
64
64
 
65
65
  item = Item.new(expected)