troo 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (271) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +2 -0
  3. data/.rubocop.yml +2 -0
  4. data/Guardfile +3 -1
  5. data/Rakefile +7 -0
  6. data/bin/troo +3 -8
  7. data/config/.gitkeep +0 -0
  8. data/config/cucumber.yml +8 -0
  9. data/features/add/board.feature +26 -0
  10. data/features/add/card.feature +34 -0
  11. data/features/add/comment.feature +21 -0
  12. data/features/add/list.feature +24 -0
  13. data/features/cleanup.feature +13 -0
  14. data/features/default/board.feature +21 -0
  15. data/features/default/card.feature +21 -0
  16. data/features/default/list.feature +21 -0
  17. data/features/refresh/all.feature +7 -0
  18. data/features/refresh/board.feature +26 -0
  19. data/features/refresh/card.feature +27 -0
  20. data/features/refresh/list.feature +27 -0
  21. data/features/show/board.feature +32 -0
  22. data/features/show/card.feature +62 -0
  23. data/features/show/comment.feature +39 -0
  24. data/features/show/list.feature +37 -0
  25. data/features/status.feature +46 -1
  26. data/features/step_definitions/fabrication_steps.rb +34 -0
  27. data/features/step_definitions/troo_steps.rb +16 -0
  28. data/features/support/env.rb +22 -24
  29. data/features/troo.feature +31 -1
  30. data/lib/troo/actions/create_board.rb +10 -7
  31. data/lib/troo/actions/create_card.rb +5 -4
  32. data/lib/troo/actions/create_comment.rb +15 -13
  33. data/lib/troo/actions/create_list.rb +5 -4
  34. data/lib/troo/actions/move_card.rb +4 -3
  35. data/lib/troo/{external/board_adaptor.rb → adaptors/board.rb} +3 -14
  36. data/lib/troo/{external/card_adaptor.rb → adaptors/card.rb} +4 -15
  37. data/lib/troo/{external/comment_adaptor.rb → adaptors/comment.rb} +6 -17
  38. data/lib/troo/{external/list_adaptor.rb → adaptors/list.rb} +3 -14
  39. data/lib/troo/{external/member_adaptor.rb → adaptors/member.rb} +3 -14
  40. data/lib/troo/adaptors/resource.rb +17 -0
  41. data/lib/troo/cli/add.rb +53 -0
  42. data/lib/troo/cli/default.rb +25 -0
  43. data/lib/troo/cli/main.rb +46 -0
  44. data/lib/troo/cli/refresh.rb +31 -0
  45. data/lib/troo/cli/show.rb +41 -0
  46. data/lib/troo/cli/thor_fixes.rb +13 -0
  47. data/lib/troo/commands/add/board.rb +26 -0
  48. data/lib/troo/commands/add/card.rb +33 -0
  49. data/lib/troo/commands/add/comment.rb +33 -0
  50. data/lib/troo/commands/add/list.rb +33 -0
  51. data/lib/troo/commands/add/resource.rb +21 -0
  52. data/lib/troo/commands/commands.rb +28 -0
  53. data/lib/troo/commands/default/board.rb +25 -0
  54. data/lib/troo/commands/default/card.rb +25 -0
  55. data/lib/troo/commands/default/list.rb +25 -0
  56. data/lib/troo/commands/default/resource.rb +26 -0
  57. data/lib/troo/commands/refresh/all.rb +41 -0
  58. data/lib/troo/commands/refresh/board.rb +28 -0
  59. data/lib/troo/commands/refresh/card.rb +29 -0
  60. data/lib/troo/commands/refresh/list.rb +29 -0
  61. data/lib/troo/commands/refresh/resource.rb +42 -0
  62. data/lib/troo/commands/show/board.rb +13 -0
  63. data/lib/troo/commands/show/boards.rb +35 -0
  64. data/lib/troo/commands/show/card.rb +13 -0
  65. data/lib/troo/commands/show/comments.rb +21 -0
  66. data/lib/troo/commands/show/list.rb +13 -0
  67. data/lib/troo/commands/show/resource.rb +41 -0
  68. data/lib/troo/commands/status/board.rb +30 -0
  69. data/lib/troo/commands/status/card.rb +30 -0
  70. data/lib/troo/commands/status/list.rb +30 -0
  71. data/lib/troo/commands/status/resource.rb +34 -0
  72. data/lib/troo/decorators/board.rb +66 -0
  73. data/lib/troo/decorators/card.rb +105 -0
  74. data/lib/troo/decorators/comment.rb +36 -0
  75. data/lib/troo/decorators/list.rb +60 -0
  76. data/lib/troo/decorators/member.rb +28 -0
  77. data/lib/troo/external/board.rb +14 -26
  78. data/lib/troo/external/card.rb +2 -19
  79. data/lib/troo/external/comment.rb +5 -23
  80. data/lib/troo/external/list.rb +2 -20
  81. data/lib/troo/external/member.rb +2 -20
  82. data/lib/troo/external/resource.rb +21 -6
  83. data/lib/troo/helpers/command_helpers.rb +37 -0
  84. data/lib/troo/{display → helpers}/decorator_helpers.rb +23 -17
  85. data/lib/troo/{models → helpers}/model_helpers.rb +1 -1
  86. data/lib/troo/models/behaviours/set_default.rb +49 -0
  87. data/lib/troo/models/board.rb +10 -7
  88. data/lib/troo/models/card.rb +33 -15
  89. data/lib/troo/models/comment.rb +8 -5
  90. data/lib/troo/models/list.rb +10 -6
  91. data/lib/troo/models/member.rb +7 -4
  92. data/lib/troo/models/persistence/board.rb +19 -0
  93. data/lib/troo/models/persistence/card.rb +19 -0
  94. data/lib/troo/models/persistence/comment.rb +19 -0
  95. data/lib/troo/models/persistence/list.rb +19 -0
  96. data/lib/troo/models/persistence/member.rb +19 -0
  97. data/lib/troo/models/persistence/resource.rb +50 -0
  98. data/lib/troo/models/refresh.rb +1 -1
  99. data/lib/troo/models/remote/comment.rb +21 -0
  100. data/lib/troo/models/remote/resource.rb +25 -0
  101. data/lib/troo/models/retrieval/board.rb +29 -0
  102. data/lib/troo/models/retrieval/card.rb +33 -0
  103. data/lib/troo/models/retrieval/comment.rb +25 -0
  104. data/lib/troo/models/retrieval/list.rb +29 -0
  105. data/lib/troo/models/retrieval/member.rb +25 -0
  106. data/lib/troo/models/retrieval/resource.rb +36 -0
  107. data/lib/troo/presentation/sentence.rb +57 -0
  108. data/lib/troo/presentation/template.rb +4 -3
  109. data/lib/troo/presenters/board.rb +81 -0
  110. data/lib/troo/presenters/card.rb +30 -0
  111. data/lib/troo/presenters/comment.rb +38 -0
  112. data/lib/troo/presenters/list.rb +44 -0
  113. data/lib/troo/presenters/member.rb +32 -0
  114. data/lib/troo/troo.rb +79 -65
  115. data/lib/troo/version.rb +1 -2
  116. data/lib/troo.rb +36 -8
  117. data/test/lib/troo/actions/create_board_test.rb +34 -15
  118. data/test/lib/troo/actions/create_card_test.rb +35 -18
  119. data/test/lib/troo/actions/create_comment_test.rb +38 -16
  120. data/test/lib/troo/actions/create_list_test.rb +31 -15
  121. data/test/lib/troo/actions/move_card_test.rb +23 -15
  122. data/test/lib/troo/adaptors/board_test.rb +38 -0
  123. data/test/lib/troo/adaptors/card_test.rb +49 -0
  124. data/test/lib/troo/adaptors/comment_test.rb +41 -0
  125. data/test/lib/troo/adaptors/list_test.rb +38 -0
  126. data/test/lib/troo/adaptors/member_test.rb +44 -0
  127. data/test/lib/troo/commands/add/board_test.rb +43 -0
  128. data/test/lib/troo/commands/add/card_test.rb +44 -0
  129. data/test/lib/troo/commands/add/comment_test.rb +44 -0
  130. data/test/lib/troo/commands/add/list_test.rb +44 -0
  131. data/test/lib/troo/commands/add/resource_test.rb +25 -0
  132. data/test/lib/troo/commands/default/board_test.rb +37 -0
  133. data/test/lib/troo/commands/default/card_test.rb +37 -0
  134. data/test/lib/troo/commands/default/list_test.rb +37 -0
  135. data/test/lib/troo/commands/default/resource_test.rb +20 -0
  136. data/test/lib/troo/commands/refresh/all_test.rb +39 -0
  137. data/test/lib/troo/commands/refresh/board_test.rb +62 -0
  138. data/test/lib/troo/commands/refresh/card_test.rb +62 -0
  139. data/test/lib/troo/commands/refresh/list_test.rb +62 -0
  140. data/test/lib/troo/commands/refresh/resource_test.rb +20 -0
  141. data/test/lib/troo/commands/show/board_test.rb +65 -0
  142. data/test/lib/troo/commands/show/boards_test.rb +36 -0
  143. data/test/lib/troo/commands/show/card_test.rb +64 -0
  144. data/test/lib/troo/commands/show/comments_test.rb +64 -0
  145. data/test/lib/troo/commands/show/list_test.rb +64 -0
  146. data/test/lib/troo/commands/show/resource_test.rb +25 -0
  147. data/test/lib/troo/commands/status/board_test.rb +43 -0
  148. data/test/lib/troo/commands/status/card_test.rb +43 -0
  149. data/test/lib/troo/commands/status/list_test.rb +43 -0
  150. data/test/lib/troo/commands/status/resource_test.rb +19 -0
  151. data/test/lib/troo/decorators/board_test.rb +129 -0
  152. data/test/lib/troo/decorators/card_test.rb +237 -0
  153. data/test/lib/troo/decorators/comment_test.rb +74 -0
  154. data/test/lib/troo/decorators/list_test.rb +102 -0
  155. data/test/lib/troo/decorators/member_test.rb +50 -0
  156. data/test/lib/troo/external/board_test.rb +74 -41
  157. data/test/lib/troo/external/card_test.rb +49 -37
  158. data/test/lib/troo/external/comment_test.rb +43 -33
  159. data/test/lib/troo/external/list_test.rb +37 -30
  160. data/test/lib/troo/external/member_test.rb +37 -30
  161. data/test/lib/troo/external/resource_test.rb +18 -1
  162. data/test/lib/troo/helpers/command_helpers_test.rb +82 -0
  163. data/test/lib/troo/{display → helpers}/decorator_helpers_test.rb +6 -6
  164. data/test/lib/troo/helpers/model_helpers_test.rb +103 -0
  165. data/test/lib/troo/models/behaviours/set_default_test.rb +54 -0
  166. data/test/lib/troo/models/board_test.rb +13 -14
  167. data/test/lib/troo/models/card_test.rb +64 -33
  168. data/test/lib/troo/models/comment_test.rb +18 -19
  169. data/test/lib/troo/models/list_test.rb +15 -15
  170. data/test/lib/troo/models/member_test.rb +18 -18
  171. data/test/lib/troo/models/persistence/board_test.rb +62 -0
  172. data/test/lib/troo/models/persistence/card_test.rb +61 -0
  173. data/test/lib/troo/models/persistence/comment_test.rb +69 -0
  174. data/test/lib/troo/models/persistence/list_test.rb +60 -0
  175. data/test/lib/troo/models/persistence/member_test.rb +60 -0
  176. data/test/lib/troo/models/refresh_test.rb +12 -11
  177. data/test/lib/troo/models/remote/comment_test.rb +56 -0
  178. data/test/lib/troo/models/remote/resource_test.rb +26 -0
  179. data/test/lib/troo/models/retrieval/board_test.rb +93 -0
  180. data/test/lib/troo/models/retrieval/card_test.rb +101 -0
  181. data/test/lib/troo/models/retrieval/comment_test.rb +46 -0
  182. data/test/lib/troo/models/retrieval/list_test.rb +93 -0
  183. data/test/lib/troo/models/retrieval/member_test.rb +58 -0
  184. data/test/lib/troo/presentation/sentence_test.rb +57 -0
  185. data/test/lib/troo/presentation/template_test.rb +17 -16
  186. data/test/lib/troo/presenters/board_test.rb +79 -0
  187. data/test/lib/troo/presenters/card_test.rb +41 -0
  188. data/test/lib/troo/presenters/comment_test.rb +49 -0
  189. data/test/lib/troo/presenters/list_test.rb +50 -0
  190. data/test/lib/troo/presenters/member_test.rb +40 -0
  191. data/test/support/fabrication.rb +31 -32
  192. data/test/support/vcr_setup.rb +7 -9
  193. data/test/system_test.sh +55 -0
  194. data/test/test_helper.rb +10 -10
  195. data/troo.gemspec +1 -0
  196. metadata +232 -134
  197. data/features/add_board.feature +0 -1
  198. data/features/add_card.feature +0 -1
  199. data/features/add_comment.feature +0 -1
  200. data/features/add_list.feature +0 -1
  201. data/features/move_card_to_list.feature +0 -1
  202. data/features/refresh.feature +0 -1
  203. data/features/set_default.feature +0 -7
  204. data/features/show_board.feature +0 -1
  205. data/features/show_boards.feature +0 -1
  206. data/features/show_card.feature +0 -1
  207. data/features/show_comments.feature +0 -1
  208. data/features/show_list.feature +0 -1
  209. data/features/version.feature +0 -8
  210. data/lib/troo/actions/refresh_all.rb +0 -79
  211. data/lib/troo/actions/set_default.rb +0 -46
  212. data/lib/troo/cli/add_cli.rb +0 -83
  213. data/lib/troo/cli/cli_helpers.rb +0 -34
  214. data/lib/troo/cli/default_cli.rb +0 -32
  215. data/lib/troo/cli/main_cli.rb +0 -132
  216. data/lib/troo/cli/show_cli.rb +0 -64
  217. data/lib/troo/display/board_decorator.rb +0 -62
  218. data/lib/troo/display/board_presenter.rb +0 -71
  219. data/lib/troo/display/card_decorator.rb +0 -100
  220. data/lib/troo/display/card_presenter.rb +0 -27
  221. data/lib/troo/display/comment_decorator.rb +0 -33
  222. data/lib/troo/display/comment_presenter.rb +0 -31
  223. data/lib/troo/display/list_decorator.rb +0 -57
  224. data/lib/troo/display/list_presenter.rb +0 -41
  225. data/lib/troo/display/member_decorator.rb +0 -25
  226. data/lib/troo/display/member_presenter.rb +0 -59
  227. data/lib/troo/models/board_persistence.rb +0 -25
  228. data/lib/troo/models/board_retrieval.rb +0 -45
  229. data/lib/troo/models/card_persistence.rb +0 -25
  230. data/lib/troo/models/card_retrieval.rb +0 -49
  231. data/lib/troo/models/comment_persistence.rb +0 -25
  232. data/lib/troo/models/comment_retrieval.rb +0 -32
  233. data/lib/troo/models/list_persistence.rb +0 -25
  234. data/lib/troo/models/list_retrieval.rb +0 -45
  235. data/lib/troo/models/member_persistence.rb +0 -25
  236. data/lib/troo/models/member_retrieval.rb +0 -36
  237. data/lib/troo/models/persistence.rb +0 -39
  238. data/test/lib/troo/actions/refresh_all_test.rb +0 -68
  239. data/test/lib/troo/actions/set_default_test.rb +0 -44
  240. data/test/lib/troo/cli/add_cli_test.rb +0 -216
  241. data/test/lib/troo/cli/cli_helpers_test.rb +0 -24
  242. data/test/lib/troo/cli/default_cli_test.rb +0 -85
  243. data/test/lib/troo/cli/main_cli_test.rb +0 -234
  244. data/test/lib/troo/cli/show_cli_test.rb +0 -251
  245. data/test/lib/troo/display/board_decorator_test.rb +0 -126
  246. data/test/lib/troo/display/board_presenter_test.rb +0 -77
  247. data/test/lib/troo/display/card_decorator_test.rb +0 -213
  248. data/test/lib/troo/display/card_presenter_test.rb +0 -38
  249. data/test/lib/troo/display/comment_decorator_test.rb +0 -70
  250. data/test/lib/troo/display/comment_presenter_test.rb +0 -47
  251. data/test/lib/troo/display/list_decorator_test.rb +0 -98
  252. data/test/lib/troo/display/list_presenter_test.rb +0 -48
  253. data/test/lib/troo/display/member_decorator_test.rb +0 -47
  254. data/test/lib/troo/display/member_presenter_test.rb +0 -70
  255. data/test/lib/troo/external/board_adaptor_test.rb +0 -36
  256. data/test/lib/troo/external/card_adaptor_test.rb +0 -50
  257. data/test/lib/troo/external/comment_adaptor_test.rb +0 -41
  258. data/test/lib/troo/external/list_adaptor_test.rb +0 -38
  259. data/test/lib/troo/external/member_adaptor_test.rb +0 -44
  260. data/test/lib/troo/models/board_persistence_test.rb +0 -61
  261. data/test/lib/troo/models/board_retrieval_test.rb +0 -93
  262. data/test/lib/troo/models/card_persistence_test.rb +0 -60
  263. data/test/lib/troo/models/card_retrieval_test.rb +0 -101
  264. data/test/lib/troo/models/comment_persistence_test.rb +0 -65
  265. data/test/lib/troo/models/comment_retrieval_test.rb +0 -46
  266. data/test/lib/troo/models/list_persistence_test.rb +0 -60
  267. data/test/lib/troo/models/list_retrieval_test.rb +0 -93
  268. data/test/lib/troo/models/member_persistence_test.rb +0 -59
  269. data/test/lib/troo/models/member_retrieval_test.rb +0 -58
  270. data/test/lib/troo/models/model_helpers_test.rb +0 -103
  271. data/test/lib/troo/models/persistence_test.rb +0 -6
@@ -0,0 +1,79 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Troo
4
+ module Presenters
5
+ describe Board do
6
+ let(:described_class) { Board }
7
+ let(:options) { {} }
8
+
9
+ before do
10
+ @board = Fabricate(:board)
11
+ @list = Fabricate(:list)
12
+ @card = Fabricate(:card)
13
+ end
14
+
15
+ after { database_cleanup }
16
+
17
+ describe '#initialize' do
18
+ subject { described_class.new(@board, options) }
19
+
20
+ it 'assigns the board to an instance variable' do
21
+ subject.instance_variable_get('@board').must_equal(@board)
22
+ end
23
+
24
+ it 'assigns the options to an instance variable' do
25
+ subject.instance_variable_get('@options').must_equal(options)
26
+ end
27
+ end
28
+
29
+ describe '#all' do
30
+ subject { capture_io { described_class.all([@board], options) }.join }
31
+
32
+ context 'when the board has lists' do
33
+ it 'renders the view' do
34
+ subject.must_match(/My Test Board/)
35
+ subject.must_match(/My Test List/)
36
+ end
37
+ end
38
+
39
+ context 'when the board has no lists' do
40
+ before { @list.delete }
41
+
42
+ it 'returns a polite message' do
43
+ subject.must_match(/No lists were found./)
44
+ end
45
+ end
46
+ end
47
+
48
+ describe '#show' do
49
+ subject { capture_io { described_class.show(@board, options) }.join }
50
+
51
+ context 'when the board has lists' do
52
+ context 'and the list has cards' do
53
+ it 'renders the view' do
54
+ subject.must_match(/My Test Board/)
55
+ subject.must_match(/My Test List/)
56
+ subject.must_match(/My Test Card/)
57
+ end
58
+ end
59
+
60
+ context 'and the list has no cards' do
61
+ before { @card.delete }
62
+
63
+ it 'returns a polite message' do
64
+ subject.must_match(/No cards were found./)
65
+ end
66
+ end
67
+ end
68
+
69
+ context 'when the board has no lists' do
70
+ before { @board.stubs(:lists).returns([]) }
71
+
72
+ it 'returns a polite message' do
73
+ subject.must_match(/No lists were found./)
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
79
+ end
@@ -0,0 +1,41 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Troo
4
+ module Presenters
5
+ describe Card do
6
+ let(:described_class) { Card }
7
+ let(:options) { {} }
8
+
9
+ before do
10
+ @card = Fabricate(:card)
11
+ @board = Fabricate(:board)
12
+ @list = Fabricate(:list)
13
+ @member = Fabricate(:member)
14
+ end
15
+
16
+ after { database_cleanup }
17
+
18
+ describe '#initialize' do
19
+ subject { described_class.new(@card, options) }
20
+
21
+ it 'assigns the card to an instance variable' do
22
+ subject.instance_variable_get('@card').must_equal(@card)
23
+ end
24
+
25
+ it 'assigns the options to an instance variable' do
26
+ subject.instance_variable_get('@options').must_equal(options)
27
+ end
28
+ end
29
+
30
+ describe '#show' do
31
+ subject { capture_io { described_class.show(@card, options) }.join }
32
+
33
+ it 'renders the view' do
34
+ subject.must_match(/My Test Card/)
35
+ subject.must_match(/No comments have been left/)
36
+ subject.must_match(/Metadata/)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,49 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Troo
4
+ module Presenters
5
+ describe Comment do
6
+ let(:described_class) { Comment }
7
+ let(:options) { {} }
8
+
9
+ before do
10
+ @card = Fabricate(:card)
11
+ @comment = Fabricate(:comment)
12
+ @member = Fabricate(:member)
13
+ end
14
+
15
+ after { database_cleanup }
16
+
17
+ describe '#initialize' do
18
+ subject { described_class.new(@card, options) }
19
+
20
+ it 'assigns the card to an instance variable' do
21
+ subject.instance_variable_get('@card').must_equal(@card)
22
+ end
23
+
24
+ it 'assigns the options to an instance variable' do
25
+ subject.instance_variable_get('@options').must_equal(options)
26
+ end
27
+ end
28
+
29
+ describe '#show' do
30
+ subject { capture_io { described_class.show(@card, options) }.join }
31
+
32
+ context 'when the card has comments' do
33
+ it 'renders the view' do
34
+ subject.must_match(/My Test Card/)
35
+ subject.must_match(/My Test Comment/)
36
+ end
37
+ end
38
+
39
+ context 'when the card has no comments' do
40
+ before { @comment.delete }
41
+
42
+ it 'returns a polite message' do
43
+ subject.must_match(/No comments were found/)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,50 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Troo
4
+ module Presenters
5
+ describe List do
6
+ let(:described_class) { List }
7
+ let(:options) { {} }
8
+
9
+ before do
10
+ @list = Fabricate(:list)
11
+ @board = Fabricate(:board)
12
+ @card = Fabricate(:card)
13
+ end
14
+
15
+ after { database_cleanup }
16
+
17
+ describe '#initialize' do
18
+ subject { described_class.new(@list, options) }
19
+
20
+ it 'assigns the list to an instance variable' do
21
+ subject.instance_variable_get('@list').must_equal(@list)
22
+ end
23
+
24
+ it 'assigns the options to an instance variable' do
25
+ subject.instance_variable_get('@options').must_equal(options)
26
+ end
27
+ end
28
+
29
+ describe '#show' do
30
+ subject { capture_io { described_class.show(@list, options) }.join }
31
+
32
+ context 'when the list has cards' do
33
+ it 'renders the view' do
34
+ subject.must_match(/My Test Board/)
35
+ subject.must_match(/My Test List/)
36
+ subject.must_match(/My Test Card/)
37
+ end
38
+ end
39
+
40
+ context 'when the list has no cards' do
41
+ before { @card.delete }
42
+
43
+ it 'returns a polite message' do
44
+ subject.must_match(/No cards were found./)
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,40 @@
1
+ require_relative '../../../test_helper'
2
+
3
+ module Troo
4
+ module Presenters
5
+ describe Member do
6
+ let(:described_class) { Member }
7
+ let(:options) { {} }
8
+ let(:external_member_ids) { ['5195fdb5a8c01a2318004f5d'] }
9
+
10
+ before do
11
+ @card = Fabricate(:card,
12
+ external_member_ids: external_member_ids)
13
+ @member = Fabricate(:member)
14
+ end
15
+
16
+ after { database_cleanup }
17
+
18
+ describe '#initialize' do
19
+ subject { described_class.new(@card, options) }
20
+
21
+ it 'assigns the card to an instance variable' do
22
+ subject.instance_variable_get('@card').must_equal(@card)
23
+ end
24
+
25
+ it 'assigns the options to an instance variable' do
26
+ subject.instance_variable_get('@options')
27
+ .must_equal(options)
28
+ end
29
+ end
30
+
31
+ describe '#show' do
32
+ subject { described_class.show(@card, options) }
33
+
34
+ it 'returns the members as a sentence' do
35
+ subject.must_equal('@gavinlaking1')
36
+ end
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,56 +1,55 @@
1
1
  Fabricator(:board, from: Troo::Board) do
2
- external_board_id "526d8e130a14a9d846001d96"
3
- name "My Test Board"
4
- description "A very brief description..."
2
+ external_board_id '526d8e130a14a9d846001d96'
3
+ name 'My Test Board'
4
+ description 'A very brief description...'
5
5
  default false
6
6
  closed false
7
7
  end
8
8
 
9
9
  Fabricator(:list, from: Troo::List) do
10
- external_board_id "526d8e130a14a9d846001d96"
11
- external_list_id "526d8e130a14a9d846001d97"
12
- name "My Test List"
13
- position 32768
10
+ external_board_id '526d8e130a14a9d846001d96'
11
+ external_list_id '526d8e130a14a9d846001d97'
12
+ name 'My Test List'
13
+ position 32_768
14
14
  default false
15
15
  closed false
16
16
  end
17
17
 
18
18
  Fabricator(:card, from: Troo::Card) do
19
- external_board_id "526d8e130a14a9d846001d96"
20
- external_list_id "526d8e130a14a9d846001d97"
21
- external_card_id "526d8f19ddb279532e005259"
22
- external_member_ids ["5195fdb5a8c01a2318004f5d"]
23
- short_id "67"
24
- name "My Test Card"
25
- desc "some description"
26
- url "some trello url"
19
+ external_board_id '526d8e130a14a9d846001d96'
20
+ external_list_id '526d8e130a14a9d846001d97'
21
+ external_card_id '526d8f19ddb279532e005259'
22
+ external_member_ids ['5195fdb5a8c01a2318004f5d']
23
+ short_id '67'
24
+ name 'My Test Card'
25
+ desc 'some description'
26
+ url 'some trello url'
27
27
  position 16
28
- last_activity_date "2013-12-17 21:48:09 UTC"
28
+ last_activity_date '2013-12-17 21:48:09 UTC'
29
29
  default false
30
30
  closed false
31
31
  end
32
32
 
33
33
  Fabricator(:comment, from: Troo::Comment) do
34
- external_board_id "526d8e130a14a9d846001d96"
35
- external_card_id "526d8f19ddb279532e005259"
36
- external_comment_id "51f9277b2822b8654f0023af"
37
- external_member_id "5195fdb5a8c01a2318004f5d"
38
- text "My Test Comment"
39
- date "2013-12-17 22:01:13 UTC"
34
+ external_board_id '526d8e130a14a9d846001d96'
35
+ external_card_id '526d8f19ddb279532e005259'
36
+ external_comment_id '51f9277b2822b8654f0023af'
37
+ external_member_id '5195fdb5a8c01a2318004f5d'
38
+ text 'My Test Comment'
39
+ date '2013-12-17 22:01:13 UTC'
40
40
  end
41
41
 
42
42
  Fabricator(:member, from: Troo::Member) do
43
- external_member_id "5195fdb5a8c01a2318004f5d"
44
- username "gavinlaking1"
45
- email "gavinlaking@gmail.com"
46
- full_name "Gavin Laking"
47
- initials "GL"
48
- avatar_id "some_avatar_id"
49
- bio "some bio"
50
- url "http://www.gavinlaking.name/"
43
+ external_member_id '5195fdb5a8c01a2318004f5d'
44
+ username 'gavinlaking1'
45
+ email 'gavinlaking@gmail.com'
46
+ full_name 'Gavin Laking'
47
+ initials 'GL'
48
+ avatar_id 'some_avatar_id'
49
+ bio 'some bio'
50
+ url 'http://www.gavinlaking.name/'
51
51
  end
52
52
 
53
53
  Fabricator(:refresh, from: Troo::Refresh) do
54
- last_performed_at "2014-01-16 21:00:00 UTC"
54
+ last_performed_at '2014-01-16 21:00:00 UTC'
55
55
  end
56
-
@@ -1,4 +1,4 @@
1
- require "vcr"
1
+ require 'vcr'
2
2
 
3
3
  VCR.configure do |c|
4
4
  c.cassette_library_dir = 'test/cassettes'
@@ -8,7 +8,6 @@ VCR.configure do |c|
8
8
  interaction.request.headers['Authorization'].first
9
9
  end
10
10
 
11
- # hack hack hack
12
11
  # Couldn't work out how to instruct VCR to filter urls, shortUrls
13
12
  # and shortLinks from the returned body string; hate myself.
14
13
  c.filter_sensitive_data('<Trello URL>') do |interaction|
@@ -16,21 +15,20 @@ VCR.configure do |c|
16
15
  if parsed.is_a?(Array)
17
16
  parsed.map do |hash|
18
17
  hash.map do |k, v|
19
- hash[k] = "<Trello URL>" if (k == "url" ||
20
- k == "shortUrl" ||
21
- k == "shortLink")
18
+ hash[k] = '<Trello URL>' if k == 'url' ||
19
+ k == 'shortUrl' ||
20
+ k == 'shortLink'
22
21
  end
23
22
  end
24
23
  interaction.response.body = JSON.dump(parsed)
25
24
  elsif parsed.is_a?(Hash)
26
25
  parsed.map do |k, v|
27
- parsed[k] = "<Trello URL>" if (k == "url" ||
28
- k == "shortUrl" ||
29
- k == "shortLink")
26
+ parsed[k] = '<Trello URL>' if k == 'url' ||
27
+ k == 'shortUrl' ||
28
+ k == 'shortLink'
30
29
  end
31
30
  interaction.response.body = JSON.dump(parsed)
32
31
  end
33
32
  nil
34
33
  end
35
34
  end
36
-
@@ -0,0 +1,55 @@
1
+ #!/bin/bash
2
+
3
+ function partition() {
4
+ echo $1
5
+ echo -e "--------------------------------------------------------"
6
+ }
7
+
8
+ if [ -e ./bin/troo ]
9
+ then
10
+ partition "version"
11
+ ./bin/troo version
12
+
13
+ partition "status"
14
+ ./bin/troo status
15
+
16
+ partition "refresh all"
17
+ ./bin/troo refresh all
18
+
19
+ partition "refresh board 1"
20
+ ./bin/troo refresh board 1
21
+
22
+ partition "refresh list 1"
23
+ ./bin/troo refresh list 1
24
+
25
+ partition "refresh card 1"
26
+ ./bin/troo refresh card 1
27
+
28
+ partition "show board 1"
29
+ ./bin/troo show board 1
30
+
31
+ partition "show list 1"
32
+ ./bin/troo show list 1
33
+
34
+ partition "show card 1"
35
+ ./bin/troo show card 1
36
+
37
+ partition "show comments 1"
38
+ ./bin/troo show comments 1
39
+
40
+ partition "default board 1"
41
+ ./bin/troo default board 1
42
+
43
+ partition "default list 1"
44
+ ./bin/troo default list 1
45
+
46
+ partition "default card 1"
47
+ ./bin/troo default card 1
48
+
49
+ partition "cleanup"
50
+ ./bin/troo cleanup
51
+ else
52
+ echo -e "\nExecute this from the root of the project, i.e: ./test/system_test.sh\n"
53
+ fi
54
+
55
+ # troo add [board|list|card|comment] <id> # Add board, list, card or comment.
data/test/test_helper.rb CHANGED
@@ -1,11 +1,11 @@
1
- require "simplecov"
2
- require "minitest/autorun"
3
- require "minitest/pride"
4
- require "fabrication"
1
+ require 'simplecov'
2
+ require 'minitest/autorun'
3
+ require 'minitest/pride'
4
+ require 'fabrication'
5
5
 
6
6
  SimpleCov.start do
7
- command_name "MiniTest::Spec"
8
- add_filter "/test/"
7
+ command_name 'MiniTest::Spec'
8
+ add_filter '/test/'
9
9
  end
10
10
 
11
11
  module MiniTest
@@ -16,13 +16,13 @@ module MiniTest
16
16
  end
17
17
  end
18
18
 
19
- require_relative "./support/vcr_setup.rb"
20
- require_relative "../lib/troo.rb"
21
- require_relative "./support/fabrication.rb"
19
+ require_relative './support/vcr_setup.rb'
20
+ require_relative '../lib/troo.rb'
21
+ require_relative './support/fabrication.rb'
22
22
 
23
23
  Ohm.connect(db: Troo.config.test_db)
24
24
 
25
- require "mocha/setup"
25
+ require 'mocha/setup'
26
26
 
27
27
  def database_cleanup(delay = 0)
28
28
  Ohm.redis.flushdb
data/troo.gemspec CHANGED
@@ -23,6 +23,7 @@ Gem::Specification.new do |spec|
23
23
  spec.add_development_dependency "cucumber", "1.3.10"
24
24
  spec.add_development_dependency "fabrication", "2.9.3"
25
25
  spec.add_development_dependency "guard", "2.2.5"
26
+ spec.add_development_dependency "guard-cucumber"
26
27
  spec.add_development_dependency "guard-minitest", "2.1.3"
27
28
  spec.add_development_dependency "minitest", "5.0.8"
28
29
  spec.add_development_dependency "mocha", "0.14.0"