ruby-trello 2.3.1 → 3.2.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 (240) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +49 -23
  3. data/lib/trello/action.rb +27 -21
  4. data/lib/trello/attachment.rb +40 -27
  5. data/lib/trello/basic_data.rb +104 -9
  6. data/lib/trello/board.rb +88 -102
  7. data/lib/trello/card.rb +34 -235
  8. data/lib/trello/checklist.rb +17 -71
  9. data/lib/trello/client.rb +1 -1
  10. data/lib/trello/comment.rb +39 -26
  11. data/lib/trello/configuration.rb +8 -0
  12. data/lib/trello/cover_image.rb +20 -0
  13. data/lib/trello/custom_field.rb +31 -84
  14. data/lib/trello/custom_field_item.rb +36 -58
  15. data/lib/trello/custom_field_option.rb +40 -13
  16. data/lib/trello/item.rb +27 -16
  17. data/lib/trello/item_state.rb +7 -15
  18. data/lib/trello/json_utils.rb +11 -5
  19. data/lib/trello/label.rb +14 -101
  20. data/lib/trello/label_name.rb +22 -25
  21. data/lib/trello/list.rb +31 -44
  22. data/lib/trello/member.rb +77 -32
  23. data/lib/trello/net/faraday.rb +46 -0
  24. data/lib/trello/net/rest_client.rb +41 -0
  25. data/lib/trello/net.rb +1 -28
  26. data/lib/trello/notification.rb +27 -20
  27. data/lib/trello/organization.rb +53 -25
  28. data/lib/trello/plugin_datum.rb +11 -16
  29. data/lib/trello/schema/attribute/base.rb +79 -0
  30. data/lib/trello/schema/attribute/board_pref.rb +45 -0
  31. data/lib/trello/schema/attribute/custom_field_display.rb +45 -0
  32. data/lib/trello/schema/attribute/default.rb +45 -0
  33. data/lib/trello/schema/attribute_builder.rb +42 -0
  34. data/lib/trello/schema/attribute_registration.rb +47 -0
  35. data/lib/trello/schema/serializer/default.rb +17 -0
  36. data/lib/trello/schema/serializer/labels.rb +23 -0
  37. data/lib/trello/schema/serializer/time.rb +25 -0
  38. data/lib/trello/schema/serializer/webhooks.rb +25 -0
  39. data/lib/trello/schema.rb +31 -0
  40. data/lib/trello/token.rb +15 -12
  41. data/lib/trello/webhook.rb +18 -71
  42. data/lib/trello.rb +62 -7
  43. data/spec/action_spec.rb +1 -2
  44. data/spec/board_spec.rb +43 -103
  45. data/spec/card_spec.rb +51 -50
  46. data/spec/cassettes/action_find_with_id_and_get_all_fields.yml +104 -0
  47. data/spec/cassettes/board_find_with_id_and_get_all_fields.yml +96 -0
  48. data/spec/cassettes/board_find_with_id_and_get_specific_fields.yml +96 -0
  49. data/spec/cassettes/can_add_a_member_to_a_board.yml +191 -0
  50. data/spec/cassettes/can_arvhice_all_cards_of_list.yml +397 -0
  51. data/spec/cassettes/can_get_actions_of_board.yml +188 -0
  52. data/spec/cassettes/can_get_actions_of_list.yml +202 -0
  53. data/spec/cassettes/can_get_actions_of_members.yml +199 -0
  54. data/spec/cassettes/can_get_actions_of_organization.yml +201 -0
  55. data/spec/cassettes/can_get_boards_of_custom_field.yml +198 -0
  56. data/spec/cassettes/can_get_boards_of_label.yml +197 -0
  57. data/spec/cassettes/can_get_boards_of_organization.yml +207 -0
  58. data/spec/cassettes/can_get_cards_of_board.yml +193 -0
  59. data/spec/cassettes/can_get_cards_of_list.yml +201 -0
  60. data/spec/cassettes/can_get_cards_of_member.yml +204 -0
  61. data/spec/cassettes/can_get_checklists_of_board.yml +187 -0
  62. data/spec/cassettes/can_get_comments_board.yml +109 -0
  63. data/spec/cassettes/can_get_comments_card.yml +111 -0
  64. data/spec/cassettes/can_get_comments_list.yml +109 -0
  65. data/spec/cassettes/can_get_custom_field_options_of_custom_field.yml +197 -0
  66. data/spec/cassettes/can_get_custom_fields_of_board.yml +187 -0
  67. data/spec/cassettes/can_get_label_names_of_board.yml +187 -0
  68. data/spec/cassettes/can_get_labels_of_board.yml +187 -0
  69. data/spec/cassettes/can_get_lists_of_board.yml +187 -0
  70. data/spec/cassettes/can_get_members_of_board.yml +188 -0
  71. data/spec/cassettes/can_get_members_of_organization.yml +200 -0
  72. data/spec/cassettes/can_get_notifications_of_member.yml +199 -0
  73. data/spec/cassettes/can_get_organization_of_board.yml +189 -0
  74. data/spec/cassettes/can_get_organizations_of_member.yml +203 -0
  75. data/spec/cassettes/can_get_plugin_data_of_board.yml +187 -0
  76. data/spec/cassettes/can_move_all_cards_to_another_list.yml +886 -0
  77. data/spec/cassettes/can_success_create_a_board.yml +98 -0
  78. data/spec/cassettes/can_success_create_a_board_with_full_parameters.yml +97 -0
  79. data/spec/cassettes/can_success_create_a_board_without_clone_from_other.yml +98 -0
  80. data/spec/cassettes/can_success_create_a_card_when_due_is_datetime.yml +98 -0
  81. data/spec/cassettes/can_success_create_a_card_when_due_is_time.yml +98 -0
  82. data/spec/cassettes/can_success_create_a_checklist.yml +102 -0
  83. data/spec/cassettes/can_success_create_a_custom_field.yml +102 -0
  84. data/spec/cassettes/can_success_create_a_custom_field_option.yml +102 -0
  85. data/spec/cassettes/can_success_create_a_label.yml +102 -0
  86. data/spec/cassettes/can_success_create_a_list.yml +102 -0
  87. data/spec/cassettes/can_success_create_a_list_with_full_parameters.yml +102 -0
  88. data/spec/cassettes/can_success_create_a_organization.yml +104 -0
  89. data/spec/cassettes/can_success_create_a_webhook.yml +102 -0
  90. data/spec/cassettes/can_success_delete_a_custom_field_option.yml +389 -0
  91. data/spec/cassettes/can_success_delete_checklist.yml +284 -0
  92. data/spec/cassettes/can_success_get_card_of_board_by_card_id.yml +188 -0
  93. data/spec/cassettes/can_success_remove_member_from_board.yml +186 -0
  94. data/spec/cassettes/can_success_return_all_boards_of_current_user.yml +195 -0
  95. data/spec/cassettes/can_success_upate_a_board.yml +191 -0
  96. data/spec/cassettes/can_success_upate_a_list.yml +296 -0
  97. data/spec/cassettes/can_success_update_bong_a_board.yml +39 -39
  98. data/spec/cassettes/can_success_update_bong_a_board_with_specific_fields.yml +284 -0
  99. data/spec/cassettes/can_success_update_bong_a_checklist_with_specific_fields.yml +296 -0
  100. data/spec/cassettes/can_success_update_bong_a_custom_field.yml +200 -0
  101. data/spec/cassettes/can_success_update_bong_a_label.yml +200 -0
  102. data/spec/cassettes/can_success_update_bong_a_list.yml +199 -0
  103. data/spec/cassettes/can_success_update_bong_a_list_with_specific_fields.yml +296 -0
  104. data/spec/cassettes/can_success_update_bong_a_organization.yml +203 -0
  105. data/spec/cassettes/can_success_update_bong_a_webhook.yml +296 -0
  106. data/spec/cassettes/checklist_can_add_an_item.yml +296 -0
  107. data/spec/cassettes/checklist_can_update_the_item_state.yml +296 -0
  108. data/spec/cassettes/checklist_find_with_id_and_get_all_fields.yml +100 -0
  109. data/spec/cassettes/comment_delete.yml +331 -0
  110. data/spec/cassettes/comment_find_with_id.yml +116 -0
  111. data/spec/cassettes/custom_field_find_with_id_and_get_all_fields.yml +100 -0
  112. data/spec/cassettes/custom_field_find_with_id_and_get_specific_fields.yml +100 -0
  113. data/spec/cassettes/custom_field_item_save_1.yml +1 -1
  114. data/spec/cassettes/custom_field_item_save_2.yml +1 -1
  115. data/spec/cassettes/custom_field_option_find_with_id.yml +100 -0
  116. data/spec/cassettes/get_board_of_list.yml +197 -0
  117. data/spec/cassettes/get_boards_of_member.yml +207 -0
  118. data/spec/cassettes/label_delete.yml +285 -0
  119. data/spec/cassettes/label_find_with_id.yml +100 -0
  120. data/spec/cassettes/list_find_with_id_and_get_all_fields.yml +100 -0
  121. data/spec/cassettes/list_find_with_id_and_get_specific_fields.yml +100 -0
  122. data/spec/cassettes/member_find_with_id_and_get_all_fields.yml +101 -0
  123. data/spec/cassettes/member_find_with_id_and_get_specific_fields.yml +100 -0
  124. data/spec/cassettes/notification_find_with_id.yml +103 -0
  125. data/spec/cassettes/organization_find_with_id_and_get_all_fields.yml +102 -0
  126. data/spec/cassettes/organization_find_with_id_and_get_specific_fields.yml +100 -0
  127. data/spec/cassettes/token_find_with_token_string.yml +100 -0
  128. data/spec/cassettes/webhook_delete.yml +286 -0
  129. data/spec/cassettes/webhook_find_with_id.yml +100 -0
  130. data/spec/checklist_spec.rb +27 -43
  131. data/spec/client_spec.rb +57 -3
  132. data/spec/configuration_spec.rb +13 -0
  133. data/spec/custom_field_item_spec.rb +2 -2
  134. data/spec/custom_field_option_spec.rb +2 -2
  135. data/spec/custom_field_spec.rb +25 -13
  136. data/spec/integration/action/find_spec.rb +23 -0
  137. data/spec/integration/basic_data/many_spec.rb +4 -0
  138. data/spec/integration/basic_data/schema_spec.rb +156 -0
  139. data/spec/integration/board/add_member_spec.rb +20 -0
  140. data/spec/integration/board/all_spec.rb +20 -0
  141. data/spec/integration/board/associations/actions_spec.rb +18 -0
  142. data/spec/integration/board/associations/cards_spec.rb +18 -0
  143. data/spec/integration/board/associations/checklists_spec.rb +18 -0
  144. data/spec/integration/board/associations/custom_fields_spec.rb +18 -0
  145. data/spec/integration/board/associations/label_names_spec.rb +17 -0
  146. data/spec/integration/board/associations/labels_spec.rb +18 -0
  147. data/spec/integration/board/associations/lists_spec.rb +18 -0
  148. data/spec/integration/board/associations/members_spec.rb +18 -0
  149. data/spec/integration/board/associations/organization_spec.rb +19 -0
  150. data/spec/integration/board/associations/plugin_data_spec.rb +18 -0
  151. data/spec/integration/board/create_spec.rb +95 -0
  152. data/spec/integration/board/find_card_spec.rb +18 -0
  153. data/spec/integration/board/find_spec.rb +42 -0
  154. data/spec/integration/board/remove_member_spec.rb +21 -0
  155. data/spec/integration/board/save_spec.rb +37 -0
  156. data/spec/integration/board/update!_spec.rb +33 -2
  157. data/spec/integration/card/associations/plugin_data_spec.rb +1 -1
  158. data/spec/integration/card/create_spec.rb +36 -2
  159. data/spec/integration/card/delete_spec.rb +2 -2
  160. data/spec/integration/card/find_spec.rb +1 -1
  161. data/spec/integration/card/save_spec.rb +2 -2
  162. data/spec/integration/checklist/add_item_spec.rb +20 -0
  163. data/spec/integration/checklist/create_spec.rb +23 -0
  164. data/spec/integration/checklist/delete_spec.rb +17 -0
  165. data/spec/integration/checklist/find_spec.rb +22 -0
  166. data/spec/integration/checklist/update!_spec.rb +21 -0
  167. data/spec/integration/checklist/update_item_state_spec.rb +20 -0
  168. data/spec/integration/comment/association/board_spec.rb +17 -0
  169. data/spec/integration/comment/association/card_spec.rb +17 -0
  170. data/spec/integration/comment/association/list_spec.rb +17 -0
  171. data/spec/integration/comment/delete_spec.rb +20 -0
  172. data/spec/integration/comment/find_spec.rb +17 -0
  173. data/spec/integration/custom_field/association/board_spec.rb +18 -0
  174. data/spec/integration/custom_field/association/custom_field_options_spec.rb +18 -0
  175. data/spec/integration/custom_field/create_spec.rb +29 -0
  176. data/spec/integration/custom_field/find_spec.rb +41 -0
  177. data/spec/integration/custom_field/update!_spec.rb +25 -0
  178. data/spec/integration/custom_field_option/create_spec.rb +23 -0
  179. data/spec/integration/custom_field_option/delete_spec.rb +19 -0
  180. data/spec/integration/custom_field_option/find_spec.rb +21 -0
  181. data/spec/integration/integration_test.rb +3 -3
  182. data/spec/integration/label/association/board_spec.rb +18 -0
  183. data/spec/integration/label/create_spec.rb +23 -0
  184. data/spec/integration/label/delete_spec.rb +21 -0
  185. data/spec/integration/label/find_spec.rb +20 -0
  186. data/spec/integration/label/update!_spec.rb +25 -0
  187. data/spec/integration/list/archive_all_cards_spec.rb +20 -0
  188. data/spec/integration/list/associations/actions_spec.rb +18 -0
  189. data/spec/integration/list/associations/board_spec.rb +18 -0
  190. data/spec/integration/list/associations/cards_spec.rb +18 -0
  191. data/spec/integration/list/create_spec.rb +44 -0
  192. data/spec/integration/list/find_spec.rb +37 -0
  193. data/spec/integration/list/move_all_cards_spec.rb +31 -0
  194. data/spec/integration/list/save_spec.rb +40 -0
  195. data/spec/integration/list/update!_spec.rb +43 -0
  196. data/spec/integration/member/associations/actions_spec.rb +17 -0
  197. data/spec/integration/member/associations/boards_spec.rb +18 -0
  198. data/spec/integration/member/associations/cards_spec.rb +18 -0
  199. data/spec/integration/member/associations/notifications_spec.rb +18 -0
  200. data/spec/integration/member/associations/organizations_spec.rb +18 -0
  201. data/spec/integration/member/find_spec.rb +39 -0
  202. data/spec/integration/member/update!_spec.rb +18 -0
  203. data/spec/integration/notification/find_spec.rb +27 -0
  204. data/spec/integration/organization/associations/actions_spec.rb +18 -0
  205. data/spec/integration/organization/associations/boards_spec.rb +18 -0
  206. data/spec/integration/organization/associations/members_spec.rb +18 -0
  207. data/spec/integration/organization/create_spec.rb +23 -0
  208. data/spec/integration/organization/find_spec.rb +37 -0
  209. data/spec/integration/organization/update!_spec.rb +28 -0
  210. data/spec/integration/token/find_spec.rb +24 -0
  211. data/spec/integration/webhook/create_spec.rb +27 -0
  212. data/spec/integration/webhook/delete_spec.rb +21 -0
  213. data/spec/integration/webhook/find_spec.rb +22 -0
  214. data/spec/integration/webhook/update!_spec.rb +24 -0
  215. data/spec/item_spec.rb +2 -2
  216. data/spec/label_spec.rb +31 -33
  217. data/spec/list_spec.rb +32 -14
  218. data/spec/notification_spec.rb +3 -3
  219. data/spec/organization_spec.rb +6 -5
  220. data/spec/spec_helper.rb +31 -14
  221. data/spec/token_spec.rb +10 -11
  222. data/spec/unit/trello/basic_data_spec.rb +67 -8
  223. data/spec/unit/trello/board/new_spec.rb +370 -0
  224. data/spec/unit/trello/board/save_spec.rb +49 -0
  225. data/spec/unit/trello/board/update_fields_spec.rb +129 -0
  226. data/spec/unit/trello/board/update_spec.rb +197 -0
  227. data/spec/unit/trello/member/new_spec.rb +62 -0
  228. data/spec/unit/trello/member/update_fields_spec.rb +80 -0
  229. data/spec/unit/trello/schema/attribute/base_spec.rb +349 -0
  230. data/spec/unit/trello/schema/attribute/board_pref_spec.rb +208 -0
  231. data/spec/unit/trello/schema/attribute/default_spec.rb +236 -0
  232. data/spec/unit/trello/schema/attribute_builder_spec.rb +55 -0
  233. data/spec/unit/trello/schema/attribute_registration_spec.rb +59 -0
  234. data/spec/unit/trello/schema/serializer/default_spec.rb +19 -0
  235. data/spec/unit/trello/schema/serializer/time_spec.rb +39 -0
  236. data/spec/unit/trello/schema_spec.rb +25 -0
  237. data/spec/webhook_spec.rb +23 -7
  238. metadata +444 -102
  239. data/lib/trello/register_attributes.rb +0 -54
  240. data/spec/integration/basic_data/register_attributes_spec.rb +0 -75
@@ -0,0 +1,19 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomFieldOption#delete' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success delete the custom_field_option' do
9
+ VCR.use_cassette('can_success_delete_a_custom_field_option') do
10
+ custom_field_option = Trello::CustomFieldOption.find('5fa7bb27621fcf64876dcc85', custom_field_id: '5fa7589441b04c2cf1fc773a')
11
+ custom_field_option.delete
12
+
13
+ custom_field = Trello::CustomField.find('5fa7589441b04c2cf1fc773a')
14
+ custom_field_options = custom_field.custom_field_options
15
+
16
+ expect(custom_field_options.map(&:id)).not_to include('5fa7bb27621fcf64876dcc85')
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::CustomFieldOption#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id' do
9
+ VCR.use_cassette('custom_field_option_find_with_id') do
10
+ custom_field_option = Trello::CustomFieldOption.find('5fa7589441b04c2cf1fc773b', custom_field_id: '5fa7589441b04c2cf1fc773a')
11
+ expect(custom_field_option).to be_a(Trello::CustomFieldOption)
12
+
13
+ expect(custom_field_option.id).not_to be_nil
14
+ expect(custom_field_option.custom_field_id).not_to be_nil
15
+ expect(custom_field_option.value).not_to be_nil
16
+ expect(custom_field_option.color).not_to be_nil
17
+ expect(custom_field_option.position).not_to be_nil
18
+ end
19
+ end
20
+
21
+ end
@@ -25,16 +25,16 @@ module IntegrationTest
25
25
  @welcome_board = ENV["WELCOME_BOARD"]
26
26
  @access_token_key = ENV["ACCESS_TOKEN_KEY"]
27
27
  @access_token_secret = ENV["ACCESS_TOKEN_SECRET"]
28
-
28
+
29
29
  WebMock.disable!
30
- end
30
+ end
31
31
  end
32
32
  end
33
33
 
34
34
  protected
35
35
 
36
36
  def get(uri)
37
- require "rest_client"
37
+ require "rest-client"
38
38
  RestClient.get uri.to_s
39
39
  end
40
40
  end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Label#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_label') do
10
+ label = Trello::Label.find('5e70f5be7669b225494e4fff')
11
+ board = label.board
12
+
13
+ expect(board).to be_a(Trello::Board)
14
+ expect(board.id).to eq(label.board_id)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Label.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_label') do
10
+ label = Trello::Label.create(
11
+ name: 'Test',
12
+ board_id: '5e70f5bed3f34a49e2f11409',
13
+ color: 'green'
14
+ )
15
+ expect(label).to be_a(Trello::Label)
16
+
17
+ expect(label.id).not_to be_nil
18
+ expect(label.name).to eq('Test')
19
+ expect(label.board_id).to eq('5e70f5bed3f34a49e2f11409')
20
+ expect(label.color).to eq('green')
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Label#delete' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id' do
9
+ VCR.use_cassette('label_delete') do
10
+ label = Trello::Label.find('5fa7f18181d21312d8c729ae')
11
+ expect(label).to be_a(Trello::Label)
12
+
13
+ label.delete
14
+
15
+ expect {
16
+ Trello::Label.find('5fa7f18181d21312d8c729ae')
17
+ }.to raise_error Trello::Error, 'The requested resource was not found.'
18
+ end
19
+ end
20
+
21
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Label#find' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'find with id' do
9
+ VCR.use_cassette('label_find_with_id') do
10
+ label = Trello::Label.find('5e70f5be7669b225494e4ff8')
11
+ expect(label).to be_a(Trello::Label)
12
+
13
+ expect(label.id).not_to be_nil
14
+ expect(label.board_id).not_to be_nil
15
+ expect(label.name).not_to be_nil
16
+ expect(label.color).not_to be_nil
17
+ end
18
+ end
19
+
20
+ end
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::Label.update!' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can update! a label' do
9
+ VCR.use_cassette('can_success_update_bong_a_label') do
10
+ label = Trello::Label.find('5fa7f18181d21312d8c729ae')
11
+
12
+ expect(label.name).to eq('Test')
13
+ expect(label.color).to eq('green')
14
+
15
+ label.name = 'Test - Changed'
16
+ label.color = 'red'
17
+
18
+ label.update!
19
+
20
+ expect(label.name).to eq('Test - Changed')
21
+ expect(label.color).to eq('red')
22
+ end
23
+ end
24
+
25
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::List#archive_all_cards' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can arvhice all cards of list' do
9
+ VCR.use_cassette('can_arvhice_all_cards_of_list') do
10
+ list = Trello::List.find('5e94eafdf553d46ea525faa7')
11
+ cards = list.cards
12
+ expect(cards.count).to eq(2)
13
+
14
+ list.archive_all_cards
15
+
16
+ cards = list.cards
17
+ expect(cards.count).to eq(0)
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::List#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_list') do
10
+ list = Trello::List.find('5f52526ebda8ea4a96445dbf')
11
+ actions = list.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::List#board' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can get board' do
9
+ VCR.use_cassette('get_board_of_list') do
10
+ list = Trello::List.find('5f52526ebda8ea4a96445dbf')
11
+ board = list.board
12
+
13
+ expect(board).to be_a(Trello::Board)
14
+ expect(board.id).to eq(list.board_id)
15
+ end
16
+ end
17
+
18
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::List#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_list') do
10
+ list = Trello::List.find('5e94fa1248c5e41ad0464a7f')
11
+ cards = list.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,44 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::List.create' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success create the list partial parameters' do
9
+ VCR.use_cassette('can_success_create_a_list') do
10
+ list = Trello::List.create(
11
+ name: 'L3',
12
+ board_id: '5e94eaf386374970d06e4c89'
13
+ )
14
+ expect(list).to be_a(Trello::List)
15
+
16
+ expect(list.name).to eq('L3')
17
+ expect(list.id).not_to be_nil
18
+ expect(list.pos).not_to be_nil
19
+ expect(list.closed).to eq(false)
20
+ expect(list.board_id).to eq('5e94eaf386374970d06e4c89')
21
+ expect(list.subscribed).to be_nil
22
+ end
23
+ end
24
+
25
+ it 'can success create list with full parameters' do
26
+ VCR.use_cassette('can_success_create_a_list_with_full_parameters') do
27
+ list = Trello::List.create(
28
+ name: 'L4',
29
+ pos: 'top',
30
+ board_id: '5e94eaf386374970d06e4c89',
31
+ source_list_id: '5e93ba98614ac22d22f085c4'
32
+ )
33
+ expect(list).to be_a(Trello::List)
34
+
35
+ expect(list.name).to eq('L4')
36
+ expect(list.id).not_to be_nil
37
+ expect(list.pos).not_to be_nil
38
+ expect(list.closed).to eq(false)
39
+ expect(list.board_id).to eq('5e94eaf386374970d06e4c89')
40
+ expect(list.subscribed).to be_nil
41
+ end
42
+ end
43
+
44
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::List#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('list_find_with_id_and_get_all_fields') do
10
+ list = Trello::List.find('5e93ba4fe51ee2602ec671af')
11
+ expect(list).to be_a(Trello::List)
12
+ expect(list.id).to eq('5e93ba4fe51ee2602ec671af')
13
+ expect(list.name).not_to be_nil
14
+ expect(list.pos).not_to be_nil
15
+ expect(list.board_id).not_to be_nil
16
+ expect(list.source_list_id).to be_nil
17
+ expect(list.closed).not_to be_nil
18
+ expect(list.subscribed).to be_nil
19
+ end
20
+ end
21
+
22
+ it 'find with id and get specific fields' do
23
+ VCR.use_cassette('list_find_with_id_and_get_specific_fields') do
24
+ list = Trello::List.find('5e93ba4fe51ee2602ec671af', fields: 'name,pos')
25
+ expect(list).to be_a(Trello::List)
26
+ expect(list.id).to eq('5e93ba4fe51ee2602ec671af')
27
+ expect(list.name).not_to be_nil
28
+ expect(list.pos).not_to be_nil
29
+
30
+ expect(list.board_id).to be_nil
31
+ expect(list.source_list_id).to be_nil
32
+ expect(list.closed).to be_nil
33
+ expect(list.subscribed).to be_nil
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,31 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::List#move_all_cards' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can move all cards to another list' do
9
+ VCR.use_cassette('can_move_all_cards_to_another_list') do
10
+ l1 = Trello::List.find('5e94eafdf553d46ea525faa7')
11
+ l2 = Trello::List.find('5e94fa1248c5e41ad0464a7f')
12
+
13
+ l1_cards = l1.cards
14
+ l2_cards = l2.cards
15
+
16
+ expect(l1_cards.count).to eq(1)
17
+ expect(l2_cards.count).to eq(0)
18
+
19
+ l1.move_all_cards(l2)
20
+
21
+ l1 = Trello::List.find('5e94eafdf553d46ea525faa7')
22
+ l2 = Trello::List.find('5e94fa1248c5e41ad0464a7f')
23
+
24
+ l1_cards = l1.cards
25
+ l2_cards = l2.cards
26
+
27
+ expect(l1_cards.count).to eq(0)
28
+ expect(l2_cards.count).to eq(1)
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::List.save' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can success create the list' do
9
+ VCR.use_cassette('can_success_create_a_list') do
10
+ list = Trello::List.new(
11
+ name: 'L3',
12
+ board_id: '5e94eaf386374970d06e4c89'
13
+ )
14
+ list.save
15
+
16
+ expect(list).to be_a(Trello::List)
17
+ expect(list.name).to eq('L3')
18
+ expect(list.id).not_to be_nil
19
+ expect(list.pos).not_to be_nil
20
+ expect(list.closed).to eq(false)
21
+ expect(list.board_id).to eq('5e94eaf386374970d06e4c89')
22
+ expect(list.subscribed).to be_nil
23
+ end
24
+ end
25
+
26
+ it 'can success update a list' do
27
+ VCR.use_cassette('can_success_upate_a_list') do
28
+ list = Trello::List.find('5f52526ebda8ea4a96445dbf')
29
+ expect(list.name).to eq('L4')
30
+
31
+ list.name = 'L4 - Changed'
32
+ list.save
33
+
34
+ list = Trello::List.find('5f52526ebda8ea4a96445dbf')
35
+ expect(list.name).to eq('L4 - Changed')
36
+ end
37
+ end
38
+
39
+ end
40
+
@@ -0,0 +1,43 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trell::List.update!' do
4
+ include IntegrationHelpers
5
+
6
+ before { setup_trello }
7
+
8
+ it 'can update! a list with all fields' do
9
+ VCR.use_cassette('can_success_update_bong_a_list') do
10
+ list = Trello::List.find('5f52526dd20e29822abc6eca')
11
+
12
+ expect(list.name).to eq('L3')
13
+
14
+ list.name = 'L3 - Changed'
15
+ list.board_id = '5e93ba98614ac22d22f085c4'
16
+ list.pos = 'top'
17
+ list.closed = false
18
+ list.subscribed = true
19
+
20
+ list.update!
21
+
22
+ expect(list.name).to eq('L3 - Changed')
23
+ expect(list.closed).to eq(false)
24
+ expect(list.subscribed).to be_nil
25
+ expect(list.board_id).to eq('5e93ba98614ac22d22f085c4')
26
+ end
27
+ end
28
+
29
+ it 'can update! a list with specific fields' do
30
+ VCR.use_cassette('can_success_update_bong_a_list_with_specific_fields') do
31
+ list = Trello::List.find('5f52526dd20e29822abc6eca')
32
+
33
+ expect(list.closed).to eq(false)
34
+
35
+ list.closed = true
36
+
37
+ list.update!
38
+
39
+ list = Trello::List.find('5f52526dd20e29822abc6eca')
40
+ expect(list.closed).to eq(true)
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,17 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Trello::Member#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_members') do
10
+ member = Trello::Member.find('hoppertest')
11
+ actions = member.actions
12
+
13
+ expect(actions).to be_a(Array)
14
+ expect(actions[0]).to be_a(Trello::Action)
15
+ end
16
+ end
17
+ end
@@ -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