troo 0.0.8 → 0.0.9

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 (316) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +3 -1
  3. data/.ruby-version +1 -1
  4. data/.trooconf.example +18 -0
  5. data/Gemfile.lock +178 -0
  6. data/README.md +77 -21
  7. data/Rakefile +1 -1
  8. data/bin/completion.bash +10 -0
  9. data/bin/completion.zsh +10 -0
  10. data/bin/init.sh +15 -0
  11. data/bin/troo +12 -3
  12. data/config/cucumber.yml +3 -3
  13. data/config/en.yml +29 -0
  14. data/config/trello_api.yml +19 -0
  15. data/features/add/board.feature +3 -19
  16. data/features/add/card.feature +14 -18
  17. data/features/add/comment.feature +14 -14
  18. data/features/add/list.feature +11 -14
  19. data/features/default/board.feature +4 -4
  20. data/features/default/card.feature +4 -4
  21. data/features/default/list.feature +4 -4
  22. data/features/move/card.feature +54 -0
  23. data/features/refresh/all.feature +8 -4
  24. data/features/refresh/board.feature +9 -6
  25. data/features/refresh/card.feature +9 -6
  26. data/features/refresh/list.feature +9 -6
  27. data/features/show/board.feature +7 -7
  28. data/features/show/boards.feature +19 -0
  29. data/features/show/card.feature +86 -15
  30. data/features/show/comment.feature +14 -12
  31. data/features/show/list.feature +19 -14
  32. data/features/status.feature +27 -13
  33. data/features/step_definitions/fabrication_steps.rb +43 -8
  34. data/features/step_definitions/troo_steps.rb +3 -2
  35. data/features/support/env.rb +1 -0
  36. data/features/troo.feature +0 -12
  37. data/lib/troo.rb +32 -29
  38. data/lib/troo/api/client.rb +117 -0
  39. data/lib/troo/api/endpoints.rb +39 -0
  40. data/lib/troo/api/headers.rb +44 -0
  41. data/lib/troo/api/oauth_settings.rb +36 -0
  42. data/lib/troo/api/request.rb +37 -0
  43. data/lib/troo/api/response.rb +31 -0
  44. data/lib/troo/cli/add.rb +8 -12
  45. data/lib/troo/cli/commands/add.rb +95 -0
  46. data/lib/troo/cli/commands/default.rb +44 -0
  47. data/lib/troo/cli/commands/move/card.rb +95 -0
  48. data/lib/troo/cli/commands/refresh.rb +80 -0
  49. data/lib/troo/cli/commands/refresh/all.rb +52 -0
  50. data/lib/troo/cli/commands/show.rb +56 -0
  51. data/lib/troo/cli/commands/show/show_boards.rb +36 -0
  52. data/lib/troo/cli/commands/show/show_comments.rb +54 -0
  53. data/lib/troo/cli/commands/status.rb +68 -0
  54. data/lib/troo/cli/default.rb +3 -3
  55. data/lib/troo/cli/main.rb +60 -9
  56. data/lib/troo/cli/refresh.rb +4 -4
  57. data/lib/troo/cli/show.rb +7 -7
  58. data/lib/troo/cli/thor_fixes.rb +1 -5
  59. data/lib/troo/configuration.rb +53 -0
  60. data/lib/troo/debug.rb +18 -0
  61. data/lib/troo/decorators/member.rb +2 -19
  62. data/lib/troo/decorators/resource.rb +130 -0
  63. data/lib/troo/helpers/decorator_helpers.rb +21 -74
  64. data/lib/troo/helpers/model_helpers.rb +19 -4
  65. data/lib/troo/helpers/remote_model_helpers.rb +54 -0
  66. data/lib/troo/models/board.rb +19 -11
  67. data/lib/troo/models/card.rb +20 -17
  68. data/lib/troo/models/comment.rb +28 -8
  69. data/lib/troo/models/list.rb +22 -14
  70. data/lib/troo/models/member.rb +21 -5
  71. data/lib/troo/models/refresh.rb +3 -4
  72. data/lib/troo/persistence/local.rb +63 -0
  73. data/lib/troo/presentation/formatter.rb +132 -0
  74. data/lib/troo/presentation/template.rb +0 -4
  75. data/lib/troo/presenters/board.rb +32 -51
  76. data/lib/troo/presenters/card.rb +4 -11
  77. data/lib/troo/presenters/comment.rb +30 -16
  78. data/lib/troo/presenters/list.rb +25 -21
  79. data/lib/troo/presenters/member.rb +1 -8
  80. data/lib/troo/remote/all.rb +16 -0
  81. data/lib/troo/remote/board.rb +64 -0
  82. data/lib/troo/remote/card.rb +81 -0
  83. data/lib/troo/remote/comment.rb +70 -0
  84. data/lib/troo/remote/comment_data.rb +11 -0
  85. data/lib/troo/remote/comment_data_board.rb +13 -0
  86. data/lib/troo/remote/comment_data_card.rb +15 -0
  87. data/lib/troo/remote/list.rb +49 -0
  88. data/lib/troo/remote/member.rb +75 -0
  89. data/lib/troo/remote/persistence/board.rb +57 -0
  90. data/lib/troo/remote/persistence/card.rb +59 -0
  91. data/lib/troo/remote/persistence/comment.rb +58 -0
  92. data/lib/troo/remote/persistence/list.rb +57 -0
  93. data/lib/troo/remote/persistence/move_card.rb +85 -0
  94. data/lib/troo/retrieval/local.rb +100 -0
  95. data/lib/troo/retrieval/remote.rb +91 -0
  96. data/lib/troo/troo.rb +42 -42
  97. data/lib/troo/version.rb +1 -1
  98. data/lib/troo/views/card.erb +8 -10
  99. data/lib/troo/views/comments.erb +4 -0
  100. data/test/cassettes/board_by_id.yml +21 -30
  101. data/test/cassettes/boards_all.yml +22 -90
  102. data/test/cassettes/card_by_id.yml +49 -0
  103. data/test/cassettes/cards_by_board_id.yml +22 -90
  104. data/test/cassettes/cards_by_list_id.yml +22 -87
  105. data/test/cassettes/comments_by_board_id.yml +22 -95
  106. data/test/cassettes/comments_by_card_id.yml +22 -87
  107. data/test/cassettes/create_board.yml +20 -32
  108. data/test/cassettes/create_card.yml +21 -35
  109. data/test/cassettes/create_comment.yml +19 -37
  110. data/test/cassettes/create_list.yml +18 -32
  111. data/test/cassettes/list_by_id.yml +46 -0
  112. data/test/cassettes/lists_by_board_id.yml +19 -91
  113. data/test/cassettes/member_by_id.yml +48 -0
  114. data/test/cassettes/members_by_board_id.yml +21 -82
  115. data/test/cassettes/move_card_board.yml +49 -0
  116. data/test/cassettes/move_card_list.yml +49 -0
  117. data/test/lib/troo/api/client_test.rb +75 -0
  118. data/test/lib/troo/api/endpoints_test.rb +48 -0
  119. data/test/lib/troo/api/headers_test.rb +27 -0
  120. data/test/lib/troo/api/oauth_settings_test.rb +10 -0
  121. data/test/lib/troo/api/request_test.rb +63 -0
  122. data/test/lib/troo/api/response_test.rb +15 -0
  123. data/test/lib/troo/cli/add_test.rb +113 -0
  124. data/test/lib/troo/cli/commands/add_test.rb +66 -0
  125. data/test/lib/troo/cli/commands/default_test.rb +39 -0
  126. data/test/lib/troo/cli/commands/move/card_test.rb +86 -0
  127. data/test/lib/troo/cli/commands/refresh/all_test.rb +37 -0
  128. data/test/lib/troo/cli/commands/refresh_test.rb +59 -0
  129. data/test/lib/troo/cli/commands/show/show_boards_test.rb +35 -0
  130. data/test/lib/troo/cli/commands/show/show_comments_test.rb +63 -0
  131. data/test/lib/troo/cli/commands/show_test.rb +65 -0
  132. data/test/lib/troo/cli/commands/status_test.rb +48 -0
  133. data/test/lib/troo/cli/default_test.rb +39 -0
  134. data/test/lib/troo/cli/main_test.rb +102 -0
  135. data/test/lib/troo/cli/refresh_test.rb +43 -0
  136. data/test/lib/troo/cli/show_test.rb +49 -0
  137. data/test/lib/troo/cli/thor_fixes_test.rb +38 -0
  138. data/test/lib/troo/configuration_test.rb +43 -0
  139. data/test/lib/troo/debug_test.rb +25 -0
  140. data/test/lib/troo/decorators/card_test.rb +105 -229
  141. data/test/lib/troo/decorators/member_test.rb +20 -35
  142. data/test/lib/troo/decorators/resource_test.rb +157 -0
  143. data/test/lib/troo/helpers/decorator_helpers_test.rb +10 -19
  144. data/test/lib/troo/helpers/model_helpers_test.rb +18 -8
  145. data/test/lib/troo/helpers/remote_model_helpers_test.rb +68 -0
  146. data/test/lib/troo/models/behaviours/set_default_test.rb +0 -10
  147. data/test/lib/troo/models/board_test.rb +2 -2
  148. data/test/lib/troo/models/card_test.rb +2 -2
  149. data/test/lib/troo/models/comment_test.rb +6 -2
  150. data/test/lib/troo/models/list_test.rb +2 -2
  151. data/test/lib/troo/models/member_test.rb +6 -2
  152. data/test/lib/troo/persistence/local_test.rb +31 -0
  153. data/test/lib/troo/presentation/formatter_test.rb +31 -0
  154. data/test/lib/troo/presentation/sentence_test.rb +0 -12
  155. data/test/lib/troo/presentation/template_test.rb +1 -14
  156. data/test/lib/troo/presenters/board_test.rb +17 -36
  157. data/test/lib/troo/presenters/card_test.rb +1 -31
  158. data/test/lib/troo/presenters/comment_test.rb +19 -19
  159. data/test/lib/troo/presenters/list_test.rb +18 -18
  160. data/test/lib/troo/presenters/member_test.rb +1 -14
  161. data/test/lib/troo/remote/board_test.rb +66 -0
  162. data/test/lib/troo/remote/card_test.rb +81 -0
  163. data/test/lib/troo/remote/comment_data_board.rb +9 -0
  164. data/test/lib/troo/remote/comment_data_card_test.rb +9 -0
  165. data/test/lib/troo/remote/comment_data_test.rb +9 -0
  166. data/test/lib/troo/remote/comment_test.rb +100 -0
  167. data/test/lib/troo/remote/list_test.rb +67 -0
  168. data/test/lib/troo/remote/member_test.rb +70 -0
  169. data/test/lib/troo/remote/persistence/board_test.rb +39 -0
  170. data/test/lib/troo/remote/persistence/card_test.rb +50 -0
  171. data/test/lib/troo/remote/persistence/comment_test.rb +45 -0
  172. data/test/lib/troo/remote/persistence/list_test.rb +45 -0
  173. data/test/lib/troo/remote/persistence/move_card_test.rb +78 -0
  174. data/test/lib/troo/retrieval/local_test.rb +192 -0
  175. data/test/lib/troo/retrieval/remote_test.rb +49 -0
  176. data/test/support/fabrication.rb +17 -17
  177. data/test/support/fake_trello/fake_response.rb +38 -0
  178. data/test/support/fake_trello/server.rb +124 -0
  179. data/test/support/remotes/all_boards.json +41 -0
  180. data/test/support/remotes/board.json +140 -0
  181. data/test/support/remotes/board_by_id.json +75 -0
  182. data/test/support/remotes/card.json +40 -0
  183. data/test/support/remotes/card_by_card_id.json +302 -0
  184. data/test/support/remotes/comment.json +27 -0
  185. data/test/support/remotes/create_board.json +38 -0
  186. data/test/support/remotes/list.json +7 -0
  187. data/test/support/remotes/member.json +50 -0
  188. data/test/system_test.sh +21 -1
  189. data/test/test_helper.rb +2 -1
  190. data/troo.gemspec +28 -20
  191. metadata +376 -269
  192. data/configuration.yml.example +0 -7
  193. data/features/cleanup.feature +0 -13
  194. data/lib/troo/actions/create_board.rb +0 -46
  195. data/lib/troo/actions/create_card.rb +0 -44
  196. data/lib/troo/actions/create_comment.rb +0 -46
  197. data/lib/troo/actions/create_list.rb +0 -42
  198. data/lib/troo/actions/move_card.rb +0 -37
  199. data/lib/troo/adaptors/board.rb +0 -32
  200. data/lib/troo/adaptors/card.rb +0 -67
  201. data/lib/troo/adaptors/comment.rb +0 -42
  202. data/lib/troo/adaptors/list.rb +0 -37
  203. data/lib/troo/adaptors/member.rb +0 -52
  204. data/lib/troo/adaptors/resource.rb +0 -17
  205. data/lib/troo/commands/add/board.rb +0 -26
  206. data/lib/troo/commands/add/card.rb +0 -33
  207. data/lib/troo/commands/add/comment.rb +0 -33
  208. data/lib/troo/commands/add/list.rb +0 -33
  209. data/lib/troo/commands/add/resource.rb +0 -21
  210. data/lib/troo/commands/commands.rb +0 -28
  211. data/lib/troo/commands/default/board.rb +0 -25
  212. data/lib/troo/commands/default/card.rb +0 -25
  213. data/lib/troo/commands/default/list.rb +0 -25
  214. data/lib/troo/commands/default/resource.rb +0 -26
  215. data/lib/troo/commands/refresh/all.rb +0 -41
  216. data/lib/troo/commands/refresh/board.rb +0 -28
  217. data/lib/troo/commands/refresh/card.rb +0 -29
  218. data/lib/troo/commands/refresh/list.rb +0 -29
  219. data/lib/troo/commands/refresh/resource.rb +0 -42
  220. data/lib/troo/commands/show/board.rb +0 -13
  221. data/lib/troo/commands/show/boards.rb +0 -35
  222. data/lib/troo/commands/show/card.rb +0 -13
  223. data/lib/troo/commands/show/comments.rb +0 -21
  224. data/lib/troo/commands/show/list.rb +0 -13
  225. data/lib/troo/commands/show/resource.rb +0 -41
  226. data/lib/troo/commands/status/board.rb +0 -30
  227. data/lib/troo/commands/status/card.rb +0 -30
  228. data/lib/troo/commands/status/list.rb +0 -30
  229. data/lib/troo/commands/status/resource.rb +0 -34
  230. data/lib/troo/decorators/board.rb +0 -66
  231. data/lib/troo/decorators/card.rb +0 -105
  232. data/lib/troo/decorators/comment.rb +0 -36
  233. data/lib/troo/decorators/list.rb +0 -60
  234. data/lib/troo/external/board.rb +0 -31
  235. data/lib/troo/external/card.rb +0 -31
  236. data/lib/troo/external/comment.rb +0 -27
  237. data/lib/troo/external/list.rb +0 -27
  238. data/lib/troo/external/member.rb +0 -27
  239. data/lib/troo/external/resource.rb +0 -42
  240. data/lib/troo/helpers/command_helpers.rb +0 -37
  241. data/lib/troo/models/persistence/board.rb +0 -19
  242. data/lib/troo/models/persistence/card.rb +0 -19
  243. data/lib/troo/models/persistence/comment.rb +0 -19
  244. data/lib/troo/models/persistence/list.rb +0 -19
  245. data/lib/troo/models/persistence/member.rb +0 -19
  246. data/lib/troo/models/persistence/resource.rb +0 -50
  247. data/lib/troo/models/remote/comment.rb +0 -21
  248. data/lib/troo/models/remote/resource.rb +0 -25
  249. data/lib/troo/models/retrieval/board.rb +0 -29
  250. data/lib/troo/models/retrieval/card.rb +0 -33
  251. data/lib/troo/models/retrieval/comment.rb +0 -25
  252. data/lib/troo/models/retrieval/list.rb +0 -29
  253. data/lib/troo/models/retrieval/member.rb +0 -25
  254. data/lib/troo/models/retrieval/resource.rb +0 -36
  255. data/lib/troo/views/comment.erb +0 -3
  256. data/test/cassettes/card_by_card_id.yml +0 -58
  257. data/test/cassettes/comments_by_list_id.yml +0 -109
  258. data/test/cassettes/list_by_list_id.yml +0 -56
  259. data/test/cassettes/member_by_member_id.yml +0 -60
  260. data/test/cassettes/move_card.yml +0 -61
  261. data/test/lib/troo/actions/create_board_test.rb +0 -66
  262. data/test/lib/troo/actions/create_card_test.rb +0 -71
  263. data/test/lib/troo/actions/create_comment_test.rb +0 -71
  264. data/test/lib/troo/actions/create_list_test.rb +0 -65
  265. data/test/lib/troo/actions/move_card_test.rb +0 -54
  266. data/test/lib/troo/adaptors/board_test.rb +0 -38
  267. data/test/lib/troo/adaptors/card_test.rb +0 -49
  268. data/test/lib/troo/adaptors/comment_test.rb +0 -41
  269. data/test/lib/troo/adaptors/list_test.rb +0 -38
  270. data/test/lib/troo/adaptors/member_test.rb +0 -44
  271. data/test/lib/troo/commands/add/board_test.rb +0 -43
  272. data/test/lib/troo/commands/add/card_test.rb +0 -44
  273. data/test/lib/troo/commands/add/comment_test.rb +0 -44
  274. data/test/lib/troo/commands/add/list_test.rb +0 -44
  275. data/test/lib/troo/commands/add/resource_test.rb +0 -25
  276. data/test/lib/troo/commands/default/board_test.rb +0 -37
  277. data/test/lib/troo/commands/default/card_test.rb +0 -37
  278. data/test/lib/troo/commands/default/list_test.rb +0 -37
  279. data/test/lib/troo/commands/default/resource_test.rb +0 -20
  280. data/test/lib/troo/commands/refresh/all_test.rb +0 -39
  281. data/test/lib/troo/commands/refresh/board_test.rb +0 -62
  282. data/test/lib/troo/commands/refresh/card_test.rb +0 -62
  283. data/test/lib/troo/commands/refresh/list_test.rb +0 -62
  284. data/test/lib/troo/commands/refresh/resource_test.rb +0 -20
  285. data/test/lib/troo/commands/show/board_test.rb +0 -65
  286. data/test/lib/troo/commands/show/boards_test.rb +0 -36
  287. data/test/lib/troo/commands/show/card_test.rb +0 -64
  288. data/test/lib/troo/commands/show/comments_test.rb +0 -64
  289. data/test/lib/troo/commands/show/list_test.rb +0 -64
  290. data/test/lib/troo/commands/show/resource_test.rb +0 -25
  291. data/test/lib/troo/commands/status/board_test.rb +0 -43
  292. data/test/lib/troo/commands/status/card_test.rb +0 -43
  293. data/test/lib/troo/commands/status/list_test.rb +0 -43
  294. data/test/lib/troo/commands/status/resource_test.rb +0 -19
  295. data/test/lib/troo/decorators/board_test.rb +0 -129
  296. data/test/lib/troo/decorators/comment_test.rb +0 -74
  297. data/test/lib/troo/decorators/list_test.rb +0 -102
  298. data/test/lib/troo/external/board_test.rb +0 -102
  299. data/test/lib/troo/external/card_test.rb +0 -131
  300. data/test/lib/troo/external/comment_test.rb +0 -109
  301. data/test/lib/troo/external/list_test.rb +0 -94
  302. data/test/lib/troo/external/member_test.rb +0 -94
  303. data/test/lib/troo/external/resource_test.rb +0 -25
  304. data/test/lib/troo/helpers/command_helpers_test.rb +0 -82
  305. data/test/lib/troo/models/persistence/board_test.rb +0 -62
  306. data/test/lib/troo/models/persistence/card_test.rb +0 -61
  307. data/test/lib/troo/models/persistence/comment_test.rb +0 -69
  308. data/test/lib/troo/models/persistence/list_test.rb +0 -60
  309. data/test/lib/troo/models/persistence/member_test.rb +0 -60
  310. data/test/lib/troo/models/remote/comment_test.rb +0 -56
  311. data/test/lib/troo/models/remote/resource_test.rb +0 -26
  312. data/test/lib/troo/models/retrieval/board_test.rb +0 -93
  313. data/test/lib/troo/models/retrieval/card_test.rb +0 -101
  314. data/test/lib/troo/models/retrieval/comment_test.rb +0 -46
  315. data/test/lib/troo/models/retrieval/list_test.rb +0 -93
  316. data/test/lib/troo/models/retrieval/member_test.rb +0 -58
@@ -1,64 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Show
6
- describe Card do
7
- let(:described_class) { Card }
8
- let(:type) { :card }
9
- let(:id) { '1' }
10
- let(:default) { false }
11
- let(:resource) {}
12
- let(:presenter) { stub }
13
-
14
- before do
15
- @card = Fabricate.build(:card, default: default)
16
- Retrieval::Card.stubs(:retrieve).returns(resource)
17
- Presenters::Card.stubs(:new).returns(presenter)
18
- presenter.stubs(:show).returns(@card.name)
19
- end
20
-
21
- after { database_cleanup }
22
-
23
- describe '.dispatch' do
24
- subject { described_class.dispatch(type, id) }
25
-
26
- context 'when a resource ID is provided' do
27
- context 'and the resource exists' do
28
- let(:resource) { @card }
29
-
30
- it 'presents the cards' do
31
- subject.must_match(/#{@card.name}/)
32
- end
33
- end
34
-
35
- context 'but the resource does not exist' do
36
- it 'returns a polite message' do
37
- subject.must_match(/Card cannot be found/)
38
- end
39
- end
40
- end
41
-
42
- context 'when a resource ID is not provided' do
43
- let(:id) {}
44
-
45
- context 'and a default resource is set' do
46
- let(:default) { true }
47
- let(:resource) { @card }
48
-
49
- it 'presents the cards' do
50
- subject.must_match(/#{@card.name}/)
51
- end
52
- end
53
-
54
- context 'and a default resource is not set' do
55
- it 'returns a polite message' do
56
- subject.must_match(/to set a default card first/)
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,64 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Show
6
- describe Comments do
7
- let(:described_class) { Comments }
8
- let(:type) { :comments }
9
- let(:id) { '1' }
10
- let(:default) { false }
11
- let(:resource) {}
12
- let(:presenter) { stub }
13
-
14
- before do
15
- @card = Fabricate.build(:card, default: default)
16
- Retrieval::Card.stubs(:retrieve).returns(resource)
17
- Presenters::Comment.stubs(:new).returns(presenter)
18
- presenter.stubs(:show).returns(@card.name)
19
- end
20
-
21
- after { database_cleanup }
22
-
23
- describe '.dispatch' do
24
- subject { described_class.dispatch(type, id) }
25
-
26
- context 'when a resource ID is provided' do
27
- context 'and the resource exists' do
28
- let(:resource) { @card }
29
-
30
- it 'presents the comments' do
31
- subject.must_match(/#{@card.name}/)
32
- end
33
- end
34
-
35
- context 'but the resource does not exist' do
36
- it 'returns a polite message' do
37
- subject.must_match(/Card cannot be found/)
38
- end
39
- end
40
- end
41
-
42
- context 'when a resource ID is not provided' do
43
- let(:id) {}
44
-
45
- context 'and a default resource is set' do
46
- let(:default) { true }
47
- let(:resource) { @card }
48
-
49
- it 'presents the comments' do
50
- subject.must_match(/#{@card.name}/)
51
- end
52
- end
53
-
54
- context 'and a default resource is not set' do
55
- it 'returns a polite message' do
56
- subject.must_match(/to set a default card first/)
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,64 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Show
6
- describe List do
7
- let(:described_class) { List }
8
- let(:type) { :list }
9
- let(:id) { '1' }
10
- let(:default) { false }
11
- let(:resource) {}
12
- let(:presenter) { stub }
13
-
14
- before do
15
- @list = Fabricate.build(:list, default: default)
16
- Retrieval::List.stubs(:retrieve).returns(resource)
17
- Presenters::List.stubs(:new).returns(presenter)
18
- presenter.stubs(:show).returns(@list.name)
19
- end
20
-
21
- after { database_cleanup }
22
-
23
- describe '.dispatch' do
24
- subject { described_class.dispatch(type, id) }
25
-
26
- context 'when a resource ID is provided' do
27
- context 'and the resource exists' do
28
- let(:resource) { @list }
29
-
30
- it 'presents the lists' do
31
- subject.must_match(/#{@list.name}/)
32
- end
33
- end
34
-
35
- context 'but the resource does not exist' do
36
- it 'returns a polite message' do
37
- subject.must_match(/List cannot be found/)
38
- end
39
- end
40
- end
41
-
42
- context 'when a resource ID is not provided' do
43
- let(:id) {}
44
-
45
- context 'and a default resource is set' do
46
- let(:default) { true }
47
- let(:resource) { @list }
48
-
49
- it 'presents the lists' do
50
- subject.must_match(/#{@list.name}/)
51
- end
52
- end
53
-
54
- context 'and a default resource is not set' do
55
- it 'returns a polite message' do
56
- subject.must_match(/to set a default list first/)
57
- end
58
- end
59
- end
60
- end
61
- end
62
- end
63
- end
64
- end
@@ -1,25 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Show
6
- describe Resource do
7
- let(:described_class) { Resource }
8
- let(:type) {}
9
- let(:id) {}
10
-
11
- describe '#initialize' do
12
- subject { described_class.new(type, id) }
13
-
14
- it 'assigns the type to an instance variable' do
15
- subject.instance_variable_get('@type').must_equal(type)
16
- end
17
-
18
- it 'assigns the id to an instance variable' do
19
- subject.instance_variable_get('@id').must_equal(id)
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
@@ -1,43 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Status
6
- describe Board do
7
- let(:described_class) { Board }
8
- let(:default) { true }
9
-
10
- describe '.dispatch' do
11
- subject { described_class.dispatch }
12
-
13
- before { @board = Fabricate(:board, default: default) }
14
- after { database_cleanup }
15
-
16
- context 'when a default is set' do
17
- it 'returns a polite message' do
18
- subject.must_match(/1 board found/)
19
- end
20
- end
21
-
22
- context 'when no default is set' do
23
- let(:default) { false }
24
-
25
- context 'and the resource exists' do
26
- it 'returns a polite message' do
27
- subject.must_match(/No default board set/)
28
- end
29
- end
30
-
31
- context 'and no resources exist' do
32
- before { Troo::Board.stubs(:count).returns(0) }
33
-
34
- it 'returns a polite message' do
35
- subject.must_match(/No boards found/)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,43 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Status
6
- describe Card do
7
- let(:described_class) { Card }
8
- let(:default) { true }
9
-
10
- describe '.dispatch' do
11
- subject { described_class.dispatch }
12
-
13
- before { @card = Fabricate(:card, default: default) }
14
- after { database_cleanup }
15
-
16
- context 'when a default is set' do
17
- it 'returns a polite message' do
18
- subject.must_match(/1 card found/)
19
- end
20
- end
21
-
22
- context 'when no default is set' do
23
- let(:default) { false }
24
-
25
- context 'and the resource exist' do
26
- it 'returns a polite message' do
27
- subject.must_match(/No default card set/)
28
- end
29
- end
30
-
31
- context 'and no resources exist' do
32
- before { Troo::Card.stubs(:count).returns(0) }
33
-
34
- it 'returns a polite message' do
35
- subject.must_match(/No cards found/)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,43 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Status
6
- describe List do
7
- let(:described_class) { List }
8
- let(:default) { true }
9
-
10
- describe '.dispatch' do
11
- subject { described_class.dispatch }
12
-
13
- before { @list = Fabricate(:list, default: default) }
14
- after { database_cleanup }
15
-
16
- context 'when a default is set' do
17
- it 'returns a polite message' do
18
- subject.must_match(/1 list found/)
19
- end
20
- end
21
-
22
- context 'when no default is set' do
23
- let(:default) { false }
24
-
25
- context 'and the resource exists' do
26
- it 'returns a polite message' do
27
- subject.must_match(/No default list set/)
28
- end
29
- end
30
-
31
- context 'and no resources exist' do
32
- before { Troo::List.stubs(:count).returns(0) }
33
-
34
- it 'returns a polite message' do
35
- subject.must_match(/No lists found/)
36
- end
37
- end
38
- end
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,19 +0,0 @@
1
- require_relative '../../../../test_helper'
2
-
3
- module Troo
4
- module Commands
5
- module Status
6
- describe Resource do
7
- let(:described_class) { Resource }
8
-
9
- # describe ".dispatch" do
10
- # subject { described_class.dispatch }
11
-
12
- # it "will be tested by the integration tests" do
13
- # skip
14
- # end
15
- # end
16
- end
17
- end
18
- end
19
- end
@@ -1,129 +0,0 @@
1
- require_relative '../../../test_helper'
2
-
3
- module Troo
4
- module Decorators
5
- describe Board do
6
- let(:described_class) { Board }
7
- let(:default) { true }
8
- let(:options) { {} }
9
-
10
- before { @board = Fabricate(:board, default: default) }
11
- after { database_cleanup }
12
-
13
- describe '#initialize' do
14
- subject { described_class.new(@board, options) }
15
-
16
- it 'assigns the board to an instance variable' do
17
- subject.instance_variable_get('@board').must_equal(@board)
18
- end
19
-
20
- it 'assigns the options to an instance variable' do
21
- subject.instance_variable_get('@options').must_equal(options)
22
- end
23
- end
24
-
25
- describe '#short' do
26
- subject { described_class.new(@board, options).short }
27
-
28
- it 'returns a one line overview of the board' do
29
- subject.must_equal(" * \e[34m\e[4m(1) \e[0m\e[34m\e[4mMy " \
30
- "Test Board\e[0m\n")
31
- end
32
-
33
- context 'when the ansicolor option is false' do
34
- let(:options) { { ansicolor: false } }
35
-
36
- it 'returns a one line overview of the board' do
37
- subject.must_equal(" * (1) My Test Board\n")
38
- end
39
- end
40
- end
41
-
42
- describe '#name_str' do
43
- subject { described_class.new(@board).name_str }
44
-
45
- it 'returns the formatted board name' do
46
- subject.must_equal("\e[34m\e[4mMy Test Board\e[0m")
47
- end
48
- end
49
-
50
- describe '#default_str' do
51
- subject { described_class.new(@board).default_str }
52
-
53
- it 'returns the formatted board default indicator' do
54
- subject.must_equal(' * ')
55
- end
56
- end
57
-
58
- describe '#id_str' do
59
- subject { described_class.new(@board).id_str }
60
-
61
- it 'returns the formatted board id' do
62
- subject.must_equal("\e[34m\e[4m(1) \e[0m")
63
- end
64
- end
65
-
66
- describe '#description' do
67
- subject { described_class.new(@board).description }
68
-
69
- context 'when the board has a description' do
70
- it 'returns the board description' do
71
- subject.must_equal(@board.description)
72
- end
73
- end
74
-
75
- context 'when the board has no description' do
76
- before { @board.stubs(:description) }
77
-
78
- it 'returns N/A' do
79
- subject.must_equal('N/A')
80
- end
81
- end
82
- end
83
-
84
- describe '#name' do
85
- subject { described_class.new(@board).name }
86
-
87
- context 'when the board has a name' do
88
- it 'returns the board name' do
89
- subject.must_equal(@board.name)
90
- end
91
- end
92
-
93
- context 'when the board has no name' do
94
- before { @board.stubs(:name) }
95
-
96
- it 'returns N/A' do
97
- subject.must_equal('N/A')
98
- end
99
- end
100
- end
101
-
102
- describe '#default' do
103
- subject { described_class.new(@board).default }
104
-
105
- context 'when default' do
106
- it 'return an indicator' do
107
- subject.must_equal('*')
108
- end
109
- end
110
-
111
- context 'when not default' do
112
- let(:default) { false }
113
-
114
- it 'returns nothing' do
115
- subject.must_equal('')
116
- end
117
- end
118
- end
119
-
120
- describe '#id' do
121
- subject { described_class.new(@board).id }
122
-
123
- it 'returns the board id' do
124
- subject.must_equal(@board.id.to_s)
125
- end
126
- end
127
- end
128
- end
129
- end